QoS: Drop support for subclasses
This feature was never properly implemented and the UI was dead Signed-off-by: Michael Tremer <michael.tremer@ipfire.org> Signed-off-by: Daniel Weismüller <daniel.weismueller@ipfire.org> Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
This commit is contained in:
parent
8d6b654369
commit
afe23fbb52
|
@ -35,26 +35,22 @@ my $errormessage = "";
|
|||
my $c = "";
|
||||
my $direntry = "";
|
||||
my $classentry = "";
|
||||
my $subclassentry = "";
|
||||
my $l7ruleentry = "";
|
||||
my $portruleentry = "";
|
||||
my $tosruleentry = "";
|
||||
my @tmp = ();
|
||||
my @classes = ();
|
||||
my @subclasses = ();
|
||||
my @l7rules = ();
|
||||
my @portrules = ();
|
||||
my @tosrules = ();
|
||||
my @tmpline = ();
|
||||
my @classline = ();
|
||||
my @subclassline = ();
|
||||
my @tosruleline = ();
|
||||
my @l7ruleline = ();
|
||||
my @portruleline = ();
|
||||
my @proto = ();
|
||||
my %selected= () ;
|
||||
my $classfile = "/var/ipfire/qos/classes";
|
||||
my $subclassfile = "/var/ipfire/qos/subclasses";
|
||||
my $level7file = "/var/ipfire/qos/level7config";
|
||||
my $portfile = "/var/ipfire/qos/portconfig";
|
||||
my $tosfile = "/var/ipfire/qos/tosconfig";
|
||||
|
@ -82,9 +78,6 @@ $qossettings{'IMQ_MODE'} = 'PREROUTING';
|
|||
open( FILE, "< $classfile" ) or die "Unable to read $classfile";
|
||||
@classes = <FILE>;
|
||||
close FILE;
|
||||
open( FILE, "< $subclassfile" ) or die "Unable to read $subclassfile";
|
||||
@subclasses = <FILE>;
|
||||
close FILE;
|
||||
open( FILE, "< $level7file" ) or die "Unable to read $level7file";
|
||||
@l7rules = <FILE>;
|
||||
close FILE;
|
||||
|
@ -191,27 +184,6 @@ foreach $classentry (sort @classes)
|
|||
print "\n";
|
||||
}
|
||||
}
|
||||
foreach $subclassentry (sort @subclasses) {
|
||||
@subclassline = split( /\;/, $subclassentry );
|
||||
if ($qossettings{'RED_DEV'} eq $subclassline[0]) {
|
||||
$qossettings{'DEVICE'} = $subclassline[0];
|
||||
$qossettings{'CLASS'} = $subclassline[1];
|
||||
$qossettings{'SCLASS'} = $subclassline[2];
|
||||
$qossettings{'SPRIO'} = $subclassline[3];
|
||||
$qossettings{'SRATE'} = $subclassline[4];
|
||||
$qossettings{'SCEIL'} = $subclassline[5];
|
||||
$qossettings{'SBURST'} = $subclassline[6];
|
||||
$qossettings{'SCBURST'} = $subclassline[7];
|
||||
print "\ttc class add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CLASS'} classid 1:$qossettings{'SCLASS'} htb rate $qossettings{'SRATE'}kbit ceil $qossettings{'SCEIL'}kbit prio $qossettings{'SPRIO'} ";
|
||||
if ($qossettings{'SBURST'} > 0) {
|
||||
print "burst $qossettings{'SBURST'}k ";
|
||||
}
|
||||
if (($qossettings{'SCBURST'} ne '') && ($qossettings{'SCBURST'} ne 0)) {
|
||||
print "cburst $qossettings{'CBURST'}k";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
|
||||
print "\n\t### ATTACH QDISC TO LEAF CLASSES\n";
|
||||
foreach $classentry (sort @classes)
|
||||
|
@ -223,14 +195,6 @@ foreach $classentry (sort @classes)
|
|||
print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel $fqcodel_options\n";
|
||||
}
|
||||
}
|
||||
foreach $subclassentry (sort @subclasses) {
|
||||
@subclassline = split( /\;/, $subclassentry );
|
||||
if ($qossettings{'RED_DEV'} eq $subclassline[0]) {
|
||||
$qossettings{'DEVICE'} = $subclassline[0];
|
||||
$qossettings{'SCLASS'} = $subclassline[2];
|
||||
print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel $fqcodel_options\n";
|
||||
}
|
||||
}
|
||||
print "\n\t### FILTER TRAFFIC INTO CLASSES\n";
|
||||
foreach $classentry (sort @classes)
|
||||
{
|
||||
|
@ -241,15 +205,6 @@ foreach $classentry (sort @classes)
|
|||
print "\ttc filter add dev $qossettings{'DEVICE'} parent 1:0 prio 0 protocol ip handle $qossettings{'CLASS'} fw flowid 1:$qossettings{'CLASS'}\n";
|
||||
}
|
||||
}
|
||||
foreach $subclassentry (sort @subclasses) {
|
||||
@subclassline = split( /\;/, $subclassentry );
|
||||
if ($qossettings{'RED_DEV'} eq $subclassline[0]) {
|
||||
$qossettings{'DEVICE'} = $subclassline[0];
|
||||
$qossettings{'CLASS'} = $subclassline[1];
|
||||
$qossettings{'SCLASS'} = $subclassline[2];
|
||||
print "\ttc filter add dev $qossettings{'DEVICE'} parent 1:0 prio 0 protocol ip handle $qossettings{'SCLASS'} fw flowid 1:$qossettings{'SCLASS'}\n";
|
||||
}
|
||||
}
|
||||
print <<END
|
||||
|
||||
### add l7-filter to PREROUTING chain to see all traffic
|
||||
|
@ -450,27 +405,6 @@ foreach $classentry (sort @classes)
|
|||
print "\n";
|
||||
}
|
||||
}
|
||||
foreach $subclassentry (sort @subclasses) {
|
||||
@subclassline = split( /\;/, $subclassentry );
|
||||
if ($qossettings{'IMQ_DEV'} eq $subclassline[0]) {
|
||||
$qossettings{'DEVICE'} = $subclassline[0];
|
||||
$qossettings{'CLASS'} = $subclassline[1];
|
||||
$qossettings{'SCLASS'} = $subclassline[2];
|
||||
$qossettings{'SPRIO'} = $subclassline[3];
|
||||
$qossettings{'SRATE'} = $subclassline[4];
|
||||
$qossettings{'SCEIL'} = $subclassline[5];
|
||||
$qossettings{'SBURST'} = $subclassline[6];
|
||||
$qossettings{'SCBURST'} = $subclassline[7];
|
||||
print "\ttc class add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} classid 2:$qossettings{'SCLASS'} htb rate $qossettings{'SRATE'}kbit ceil $qossettings{'SCEIL'}kbit prio $qossettings{'SPRIO'} ";
|
||||
if ($qossettings{'SBURST'} > 0) {
|
||||
print "burst $qossettings{'SBURST'}k ";
|
||||
}
|
||||
if (($qossettings{'SCBURST'} ne '') && ($qossettings{'SCBURST'} ne 0)) {
|
||||
print "cburst $qossettings{'CBURST'}k";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
|
||||
print "\n\t### ATTACH QDISC TO LEAF CLASSES\n";
|
||||
foreach $classentry (sort @classes)
|
||||
|
@ -482,14 +416,6 @@ foreach $classentry (sort @classes)
|
|||
print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel $fqcodel_options\n";
|
||||
}
|
||||
}
|
||||
foreach $subclassentry (sort @subclasses) {
|
||||
@subclassline = split( /\;/, $subclassentry );
|
||||
if ($qossettings{'IMQ_DEV'} eq $subclassline[0]) {
|
||||
$qossettings{'DEVICE'} = $subclassline[0];
|
||||
$qossettings{'SCLASS'} = $subclassline[2];
|
||||
print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel $fqcodel_options\n";
|
||||
}
|
||||
}
|
||||
print "\n\t### FILTER TRAFFIC INTO CLASSES\n";
|
||||
foreach $classentry (sort @classes)
|
||||
{
|
||||
|
@ -500,15 +426,6 @@ foreach $classentry (sort @classes)
|
|||
print "\ttc filter add dev $qossettings{'DEVICE'} parent 2:0 prio 0 protocol ip handle $qossettings{'CLASS'} fw flowid 2:$qossettings{'CLASS'}\n";
|
||||
}
|
||||
}
|
||||
foreach $subclassentry (sort @subclasses) {
|
||||
@subclassline = split( /\;/, $subclassentry );
|
||||
if ($qossettings{'IMQ_DEV'} eq $subclassline[0]) {
|
||||
$qossettings{'DEVICE'} = $subclassline[0];
|
||||
$qossettings{'CLASS'} = $subclassline[1];
|
||||
$qossettings{'SCLASS'} = $subclassline[2];
|
||||
print "\ttc filter add dev $qossettings{'DEVICE'} parent 2:0 prio 0 protocol ip handle $qossettings{'SCLASS'} fw flowid 2:$qossettings{'SCLASS'}\n";
|
||||
}
|
||||
}
|
||||
|
||||
if ( $qossettings{'IMQ_MODE'} eq 'POSTROUTING' )
|
||||
{
|
||||
|
@ -659,17 +576,6 @@ END
|
|||
print "\tiptables -t mangle -A QOS-TOS -m mark --mark $qossettings{'CLASS'} -j RETURN\n";
|
||||
}
|
||||
}
|
||||
foreach $subclassentry (sort @subclasses)
|
||||
{
|
||||
@subclassline = split( /\;/, $subclassentry );
|
||||
$qossettings{'SUBCLASS'} = $subclassline[1];
|
||||
$qossettings{'TOS'} = $subclassline[8];
|
||||
$qossettings{'TOS'} = abs $qossettings{'TOS'} * 2;
|
||||
if ($qossettings{'TOS'} ne "0") {
|
||||
print "\tiptables -t mangle -A QOS-TOS -m mark --mark $qossettings{'SUBCLASS'} -j TOS --set-tos $qossettings{'TOS'}\n";
|
||||
print "\tiptables -t mangle -A QOS-TOS -m mark --mark $qossettings{'SUBCLASS'} -j RETURN\n";
|
||||
}
|
||||
}
|
||||
|
||||
print <<END
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ WARNING: translation string unused: Queuelenght
|
|||
WARNING: translation string unused: Remote IP
|
||||
WARNING: translation string unused: Remote VPN IP
|
||||
WARNING: translation string unused: Resolv
|
||||
WARNING: translation string unused: Subclass
|
||||
WARNING: translation string unused: TOS Bits
|
||||
WARNING: translation string unused: Verbose
|
||||
WARNING: translation string unused: access allowed
|
||||
|
@ -39,6 +40,7 @@ WARNING: translation string unused: add cron
|
|||
WARNING: translation string unused: add network
|
||||
WARNING: translation string unused: add new ovpn
|
||||
WARNING: translation string unused: add service
|
||||
WARNING: translation string unused: add subclass
|
||||
WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: addon
|
||||
|
@ -140,6 +142,7 @@ WARNING: translation string unused: ccd maxclients
|
|||
WARNING: translation string unused: cfg restart
|
||||
WARNING: translation string unused: check for net traffic update
|
||||
WARNING: translation string unused: choose config
|
||||
WARNING: translation string unused: class in use
|
||||
WARNING: translation string unused: clear cache
|
||||
WARNING: translation string unused: compression
|
||||
WARNING: translation string unused: connect
|
||||
|
@ -548,6 +551,7 @@ WARNING: translation string unused: proxy no proxy extend
|
|||
WARNING: translation string unused: proxy no proxy local
|
||||
WARNING: translation string unused: proxy port
|
||||
WARNING: translation string unused: psk
|
||||
WARNING: translation string unused: qos add subclass
|
||||
WARNING: translation string unused: reboot ask
|
||||
WARNING: translation string unused: reboot question
|
||||
WARNING: translation string unused: reboot schedule
|
||||
|
|
|
@ -80,7 +80,6 @@ WARNING: untranslated string: Scan for Files = Scan for files
|
|||
WARNING: untranslated string: Scan for Songs = unknown string
|
||||
WARNING: untranslated string: Scan from Directory = Scan from directory
|
||||
WARNING: untranslated string: Set time on boot = Force setting the system clock on boot
|
||||
WARNING: untranslated string: Subclass = Subclass
|
||||
WARNING: untranslated string: TOS Rule = TOS-Rule
|
||||
WARNING: untranslated string: TOS rule = TOS rule
|
||||
WARNING: untranslated string: The class number does not match the specified interface. = The class number does not match the specified interface.
|
||||
|
@ -107,7 +106,6 @@ WARNING: untranslated string: add new alias = Add a new alias
|
|||
WARNING: untranslated string: add new lease = Add a new fixed lease
|
||||
WARNING: untranslated string: add printer = Add printer
|
||||
WARNING: untranslated string: add share = Add share
|
||||
WARNING: untranslated string: add subclass = Add subclass
|
||||
WARNING: untranslated string: add user = Add user
|
||||
WARNING: untranslated string: added from dhcp lease list = Added from DHCP lease list
|
||||
WARNING: untranslated string: addons = Addons
|
||||
|
@ -465,7 +463,6 @@ WARNING: untranslated string: check all = Check all
|
|||
WARNING: untranslated string: check vpn lr = Check
|
||||
WARNING: untranslated string: cipher = Encryption:
|
||||
WARNING: untranslated string: city = City
|
||||
WARNING: untranslated string: class in use = The class is already in use.
|
||||
WARNING: untranslated string: clear playlist = Empty playlist
|
||||
WARNING: untranslated string: clenabled = Provide time to local network
|
||||
WARNING: untranslated string: click to disable = Enabled (click to disable)
|
||||
|
@ -1517,7 +1514,6 @@ WARNING: untranslated string: proxy reports weekly = Weekly reports
|
|||
WARNING: untranslated string: ptr = PTR
|
||||
WARNING: untranslated string: pulse = Pulse
|
||||
WARNING: untranslated string: pulse dial = Pulse dial:
|
||||
WARNING: untranslated string: qos add subclass = Add subclass
|
||||
WARNING: untranslated string: qos enter bandwidths = You will need to enter your downstream and upstream bandwidth!
|
||||
WARNING: untranslated string: qos graphs = Qos Graphs
|
||||
WARNING: untranslated string: qos warning = The rule <strong>must</strong> be saved, otherwise it will be discarded!
|
||||
|
|
|
@ -9,6 +9,7 @@ WARNING: translation string unused: Queuelenght
|
|||
WARNING: translation string unused: Remote IP
|
||||
WARNING: translation string unused: Remote VPN IP
|
||||
WARNING: translation string unused: Resolv
|
||||
WARNING: translation string unused: Subclass
|
||||
WARNING: translation string unused: TOS Bits
|
||||
WARNING: translation string unused: Verbose
|
||||
WARNING: translation string unused: access allowed
|
||||
|
@ -18,6 +19,7 @@ WARNING: translation string unused: add cron
|
|||
WARNING: translation string unused: add network
|
||||
WARNING: translation string unused: add new ovpn
|
||||
WARNING: translation string unused: add service
|
||||
WARNING: translation string unused: add subclass
|
||||
WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: admin user password has been changed
|
||||
|
@ -129,6 +131,7 @@ WARNING: translation string unused: cfg restart
|
|||
WARNING: translation string unused: check for net traffic update
|
||||
WARNING: translation string unused: choose config
|
||||
WARNING: translation string unused: choose media
|
||||
WARNING: translation string unused: class in use
|
||||
WARNING: translation string unused: clear cache
|
||||
WARNING: translation string unused: compression
|
||||
WARNING: translation string unused: connect
|
||||
|
@ -475,6 +478,7 @@ WARNING: translation string unused: proxy no proxy extend
|
|||
WARNING: translation string unused: proxy no proxy local
|
||||
WARNING: translation string unused: proxy port
|
||||
WARNING: translation string unused: psk
|
||||
WARNING: translation string unused: qos add subclass
|
||||
WARNING: translation string unused: quick control
|
||||
WARNING: translation string unused: reboot ask
|
||||
WARNING: translation string unused: reboot question
|
||||
|
|
|
@ -31,6 +31,7 @@ WARNING: translation string unused: Queuelenght
|
|||
WARNING: translation string unused: Remote IP
|
||||
WARNING: translation string unused: Remote VPN IP
|
||||
WARNING: translation string unused: Resolv
|
||||
WARNING: translation string unused: Subclass
|
||||
WARNING: translation string unused: TOS Bits
|
||||
WARNING: translation string unused: Verbose
|
||||
WARNING: translation string unused: access allowed
|
||||
|
@ -40,6 +41,7 @@ WARNING: translation string unused: add cron
|
|||
WARNING: translation string unused: add network
|
||||
WARNING: translation string unused: add new ovpn
|
||||
WARNING: translation string unused: add service
|
||||
WARNING: translation string unused: add subclass
|
||||
WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: admin user password has been changed
|
||||
|
@ -159,6 +161,7 @@ WARNING: translation string unused: cfg restart
|
|||
WARNING: translation string unused: check for net traffic update
|
||||
WARNING: translation string unused: choose config
|
||||
WARNING: translation string unused: choose media
|
||||
WARNING: translation string unused: class in use
|
||||
WARNING: translation string unused: clear cache
|
||||
WARNING: translation string unused: compression
|
||||
WARNING: translation string unused: connect
|
||||
|
@ -577,6 +580,7 @@ WARNING: translation string unused: proxy no proxy extend
|
|||
WARNING: translation string unused: proxy no proxy local
|
||||
WARNING: translation string unused: proxy port
|
||||
WARNING: translation string unused: psk
|
||||
WARNING: translation string unused: qos add subclass
|
||||
WARNING: translation string unused: quick control
|
||||
WARNING: translation string unused: reboot ask
|
||||
WARNING: translation string unused: reboot question
|
||||
|
|
|
@ -10,6 +10,7 @@ WARNING: translation string unused: Queuelenght
|
|||
WARNING: translation string unused: Remote IP
|
||||
WARNING: translation string unused: Remote VPN IP
|
||||
WARNING: translation string unused: Resolv
|
||||
WARNING: translation string unused: Subclass
|
||||
WARNING: translation string unused: TOS Bits
|
||||
WARNING: translation string unused: Verbose
|
||||
WARNING: translation string unused: access allowed
|
||||
|
@ -19,6 +20,7 @@ WARNING: translation string unused: add cron
|
|||
WARNING: translation string unused: add network
|
||||
WARNING: translation string unused: add new ovpn
|
||||
WARNING: translation string unused: add service
|
||||
WARNING: translation string unused: add subclass
|
||||
WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: admin user password has been changed
|
||||
|
@ -137,6 +139,7 @@ WARNING: translation string unused: cfg restart
|
|||
WARNING: translation string unused: check for net traffic update
|
||||
WARNING: translation string unused: choose config
|
||||
WARNING: translation string unused: choose media
|
||||
WARNING: translation string unused: class in use
|
||||
WARNING: translation string unused: clear cache
|
||||
WARNING: translation string unused: compression
|
||||
WARNING: translation string unused: connect
|
||||
|
@ -552,6 +555,7 @@ WARNING: translation string unused: proxy no proxy extend
|
|||
WARNING: translation string unused: proxy no proxy local
|
||||
WARNING: translation string unused: proxy port
|
||||
WARNING: translation string unused: psk
|
||||
WARNING: translation string unused: qos add subclass
|
||||
WARNING: translation string unused: quick control
|
||||
WARNING: translation string unused: reboot ask
|
||||
WARNING: translation string unused: reboot question
|
||||
|
|
|
@ -10,6 +10,7 @@ WARNING: translation string unused: Queuelenght
|
|||
WARNING: translation string unused: Remote IP
|
||||
WARNING: translation string unused: Remote VPN IP
|
||||
WARNING: translation string unused: Resolv
|
||||
WARNING: translation string unused: Subclass
|
||||
WARNING: translation string unused: TOS Bits
|
||||
WARNING: translation string unused: Verbose
|
||||
WARNING: translation string unused: access allowed
|
||||
|
@ -19,6 +20,7 @@ WARNING: translation string unused: add cron
|
|||
WARNING: translation string unused: add network
|
||||
WARNING: translation string unused: add new ovpn
|
||||
WARNING: translation string unused: add service
|
||||
WARNING: translation string unused: add subclass
|
||||
WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: admin user password has been changed
|
||||
|
@ -136,6 +138,7 @@ WARNING: translation string unused: cfg restart
|
|||
WARNING: translation string unused: check for net traffic update
|
||||
WARNING: translation string unused: choose config
|
||||
WARNING: translation string unused: choose media
|
||||
WARNING: translation string unused: class in use
|
||||
WARNING: translation string unused: clear cache
|
||||
WARNING: translation string unused: compression
|
||||
WARNING: translation string unused: connect
|
||||
|
@ -547,6 +550,7 @@ WARNING: translation string unused: proxy no proxy extend
|
|||
WARNING: translation string unused: proxy no proxy local
|
||||
WARNING: translation string unused: proxy port
|
||||
WARNING: translation string unused: psk
|
||||
WARNING: translation string unused: qos add subclass
|
||||
WARNING: translation string unused: quick control
|
||||
WARNING: translation string unused: reboot ask
|
||||
WARNING: translation string unused: reboot question
|
||||
|
|
|
@ -9,6 +9,7 @@ WARNING: translation string unused: Queuelenght
|
|||
WARNING: translation string unused: Remote IP
|
||||
WARNING: translation string unused: Remote VPN IP
|
||||
WARNING: translation string unused: Resolv
|
||||
WARNING: translation string unused: Subclass
|
||||
WARNING: translation string unused: TOS Bits
|
||||
WARNING: translation string unused: Verbose
|
||||
WARNING: translation string unused: access allowed
|
||||
|
@ -18,6 +19,7 @@ WARNING: translation string unused: add cron
|
|||
WARNING: translation string unused: add network
|
||||
WARNING: translation string unused: add new ovpn
|
||||
WARNING: translation string unused: add service
|
||||
WARNING: translation string unused: add subclass
|
||||
WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: admin user password has been changed
|
||||
|
@ -129,6 +131,7 @@ WARNING: translation string unused: cfg restart
|
|||
WARNING: translation string unused: check for net traffic update
|
||||
WARNING: translation string unused: choose config
|
||||
WARNING: translation string unused: choose media
|
||||
WARNING: translation string unused: class in use
|
||||
WARNING: translation string unused: clear cache
|
||||
WARNING: translation string unused: compression
|
||||
WARNING: translation string unused: connect
|
||||
|
@ -475,6 +478,7 @@ WARNING: translation string unused: proxy no proxy extend
|
|||
WARNING: translation string unused: proxy no proxy local
|
||||
WARNING: translation string unused: proxy port
|
||||
WARNING: translation string unused: psk
|
||||
WARNING: translation string unused: qos add subclass
|
||||
WARNING: translation string unused: quick control
|
||||
WARNING: translation string unused: reboot ask
|
||||
WARNING: translation string unused: reboot question
|
||||
|
|
|
@ -10,6 +10,7 @@ WARNING: translation string unused: Queuelenght
|
|||
WARNING: translation string unused: Remote IP
|
||||
WARNING: translation string unused: Remote VPN IP
|
||||
WARNING: translation string unused: Resolv
|
||||
WARNING: translation string unused: Subclass
|
||||
WARNING: translation string unused: TOS Bits
|
||||
WARNING: translation string unused: Verbose
|
||||
WARNING: translation string unused: access allowed
|
||||
|
@ -19,6 +20,7 @@ WARNING: translation string unused: add cron
|
|||
WARNING: translation string unused: add network
|
||||
WARNING: translation string unused: add new ovpn
|
||||
WARNING: translation string unused: add service
|
||||
WARNING: translation string unused: add subclass
|
||||
WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: admin user password has been changed
|
||||
|
@ -130,6 +132,7 @@ WARNING: translation string unused: cfg restart
|
|||
WARNING: translation string unused: check for net traffic update
|
||||
WARNING: translation string unused: choose config
|
||||
WARNING: translation string unused: choose media
|
||||
WARNING: translation string unused: class in use
|
||||
WARNING: translation string unused: clear cache
|
||||
WARNING: translation string unused: compression
|
||||
WARNING: translation string unused: connect
|
||||
|
@ -478,6 +481,7 @@ WARNING: translation string unused: proxy no proxy extend
|
|||
WARNING: translation string unused: proxy no proxy local
|
||||
WARNING: translation string unused: proxy port
|
||||
WARNING: translation string unused: psk
|
||||
WARNING: translation string unused: qos add subclass
|
||||
WARNING: translation string unused: quick control
|
||||
WARNING: translation string unused: reboot ask
|
||||
WARNING: translation string unused: reboot question
|
||||
|
|
|
@ -31,6 +31,7 @@ WARNING: translation string unused: Queuelenght
|
|||
WARNING: translation string unused: Remote IP
|
||||
WARNING: translation string unused: Remote VPN IP
|
||||
WARNING: translation string unused: Resolv
|
||||
WARNING: translation string unused: Subclass
|
||||
WARNING: translation string unused: TOS Bits
|
||||
WARNING: translation string unused: Verbose
|
||||
WARNING: translation string unused: access allowed
|
||||
|
@ -40,6 +41,7 @@ WARNING: translation string unused: add cron
|
|||
WARNING: translation string unused: add network
|
||||
WARNING: translation string unused: add new ovpn
|
||||
WARNING: translation string unused: add service
|
||||
WARNING: translation string unused: add subclass
|
||||
WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: admin user password has been changed
|
||||
|
@ -159,6 +161,7 @@ WARNING: translation string unused: cfg restart
|
|||
WARNING: translation string unused: check for net traffic update
|
||||
WARNING: translation string unused: choose config
|
||||
WARNING: translation string unused: choose media
|
||||
WARNING: translation string unused: class in use
|
||||
WARNING: translation string unused: clear cache
|
||||
WARNING: translation string unused: compression
|
||||
WARNING: translation string unused: connect
|
||||
|
@ -580,6 +583,7 @@ WARNING: translation string unused: proxy no proxy extend
|
|||
WARNING: translation string unused: proxy no proxy local
|
||||
WARNING: translation string unused: proxy port
|
||||
WARNING: translation string unused: psk
|
||||
WARNING: translation string unused: qos add subclass
|
||||
WARNING: translation string unused: quick control
|
||||
WARNING: translation string unused: reboot ask
|
||||
WARNING: translation string unused: reboot question
|
||||
|
|
|
@ -38,19 +38,16 @@ my $errormessage = "";
|
|||
my $c = "";
|
||||
my $direntry = "";
|
||||
my $classentry = "";
|
||||
my $subclassentry = "";
|
||||
my $l7ruleentry = "";
|
||||
my $portruleentry = "";
|
||||
my $tosruleentry = "";
|
||||
my @tmp = ();
|
||||
my @classes = ();
|
||||
my @subclasses = ();
|
||||
my @l7rules = ();
|
||||
my @portrules = ();
|
||||
my @tosrules = ();
|
||||
my @tmpline = ();
|
||||
my @classline = ();
|
||||
my @subclassline = ();
|
||||
my @l7ruleline = ();
|
||||
my @portruleline = ();
|
||||
my @tosruleline = ();
|
||||
|
@ -58,7 +55,6 @@ my @proto = ();
|
|||
my %selected= ();
|
||||
my @checked = ();
|
||||
my $classfile = "/var/ipfire/qos/classes";
|
||||
my $subclassfile = "/var/ipfire/qos/subclasses";
|
||||
my $level7file = "/var/ipfire/qos/level7config";
|
||||
my $portfile = "/var/ipfire/qos/portconfig";
|
||||
my $tosfile = "/var/ipfire/qos/tosconfig";
|
||||
|
@ -85,7 +81,6 @@ $qossettings{'IMQ_DEV_SEL'} = '';
|
|||
$qossettings{'PRIO'} = '';
|
||||
$qossettings{'SPD'} = '';
|
||||
$qossettings{'CLASS'} = '';
|
||||
$qossettings{'SCLASS'} = '';
|
||||
$qossettings{'QPORT'} = '';
|
||||
$qossettings{'DPORT'} = '';
|
||||
$qossettings{'QIP'} = '';
|
||||
|
@ -98,7 +93,6 @@ $qossettings{'MAXBWDTH'} = '';
|
|||
$qossettings{'BURST'} = '';
|
||||
$qossettings{'CBURST'} = '';
|
||||
$qossettings{'DOCLASS'} = '';
|
||||
$qossettings{'DOSCLASS'} = '';
|
||||
$qossettings{'DOLEVEL7'} = '';
|
||||
$qossettings{'DOPORT'} = '';
|
||||
$qossettings{'CLASS'} = '';
|
||||
|
@ -194,60 +188,12 @@ elsif ($qossettings{'DOCLASS'} eq $Lang::tr{'delete'})
|
|||
}
|
||||
}
|
||||
close FILE;
|
||||
open( FILE, "< $subclassfile" ) or die "Unable to read $classfile";
|
||||
@tmp = <FILE>;
|
||||
close FILE;
|
||||
open( FILE, "> $subclassfile" ) or die "Unable to write $classfile";
|
||||
foreach $subclassentry (sort @tmp)
|
||||
{
|
||||
@tmpline = split( /\;/, $subclassentry );
|
||||
if ( $tmpline[1] ne $qossettings{'CLASS'} )
|
||||
{
|
||||
print FILE $subclassentry;
|
||||
}
|
||||
}
|
||||
close FILE;
|
||||
$message = "$Lang::tr{'Class'} $qossettings{'CLASS'} $Lang::tr{'Class was deleted'}";
|
||||
}
|
||||
|
||||
############################################################################################################################
|
||||
############################################################################################################################
|
||||
|
||||
if ($qossettings{'DOSCLASS'} eq $Lang::tr{'save'})
|
||||
{
|
||||
&validsubclass();
|
||||
&validminbwdth();
|
||||
if ( $qossettings{'VALID'} eq 'yes' ) {
|
||||
open( FILE, ">> $subclassfile" ) or die "Unable to write $subclassfile";
|
||||
print FILE <<END
|
||||
$qossettings{'DEVICE'};$qossettings{'CLASS'};$qossettings{'SCLASS'};$qossettings{'PRIO'};$qossettings{'MINBWDTH'};$qossettings{'MAXBWDTH'};$qossettings{'BURST'};$qossettings{'CBURST'};$qossettings{'TOS'};
|
||||
END
|
||||
;
|
||||
close FILE;
|
||||
} else {
|
||||
$qossettings{'ACTION'} = $Lang::tr{'qos add subclass'};
|
||||
}
|
||||
} elsif ($qossettings{'DOSCLASS'} eq $Lang::tr{'delete'})
|
||||
{
|
||||
open( FILE, "< $subclassfile" ) or die "Unable to read $classfile";
|
||||
@tmp = <FILE>;
|
||||
close FILE;
|
||||
open( FILE, "> $subclassfile" ) or die "Unable to write $classfile";
|
||||
foreach $subclassentry (sort @tmp)
|
||||
{
|
||||
@tmpline = split( /\;/, $subclassentry );
|
||||
if ( $tmpline[2] ne $qossettings{'CLASS'} )
|
||||
{
|
||||
print FILE $subclassentry;
|
||||
}
|
||||
}
|
||||
close FILE;
|
||||
$message = "$Lang::tr{'Subclass'} $qossettings{'CLASS'} $Lang::tr{'was deleted'}.";
|
||||
}
|
||||
|
||||
############################################################################################################################
|
||||
############################################################################################################################
|
||||
|
||||
if ($qossettings{'DOLEVEL7'} eq $Lang::tr{'save'})
|
||||
{
|
||||
if ( $qossettings{'QIP'} ne '' ) {
|
||||
|
@ -612,13 +558,6 @@ elsif ($qossettings{'ACTION'} eq $Lang::tr{'parentclass add'} )
|
|||
&Header::closepage();
|
||||
exit
|
||||
}
|
||||
elsif ($qossettings{'ACTION'} eq $Lang::tr{'qos add subclass'})
|
||||
{
|
||||
&subclass();
|
||||
&Header::closebigbox();
|
||||
&Header::closepage();
|
||||
exit
|
||||
}
|
||||
elsif ($qossettings{'ACTION'} eq $Lang::tr{'Add Rule'})
|
||||
{
|
||||
&Header::openbox('100%', 'center', $Lang::tr{'Add Rule'});
|
||||
|
@ -967,81 +906,6 @@ END
|
|||
&Header::closebox();
|
||||
}
|
||||
|
||||
sub subclass {
|
||||
&Header::openbox('100%', 'center', $Lang::tr{'Subclass'});
|
||||
print <<END
|
||||
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<table width='66%'>
|
||||
END
|
||||
;
|
||||
if ( $message ne "" ) {
|
||||
print "<tr><td colspan='3' align='center'>$message";
|
||||
}
|
||||
print <<END
|
||||
<tr><td colspan='3' width='100%'>$Lang::tr{'current class'}: $qossettings{'CLASS'}
|
||||
<tr><td width='100%' colspan='3'>$Lang::tr{'enter data'}
|
||||
<tr><td width='33%' align='right'>$Lang::tr{'Subclass'}:<td width='33%' align='left'><select name='SCLASS'>
|
||||
END
|
||||
;
|
||||
if ($qossettings{'CLASS'} >= 100 && $qossettings{'CLASS'} < 121) {
|
||||
$qossettings{'DEVICE'} = $qossettings{'RED_DEV'};
|
||||
for ( $c = 1000 ; $c <= 1020 ; $c++ )
|
||||
{
|
||||
if ( $qossettings{'SCLASS'} ne $c )
|
||||
{ print "<option value='$c'>$c</option>\n"; }
|
||||
else { print "<option selected value='$c'>$c</option>\n"; }
|
||||
}
|
||||
} elsif ($qossettings{'CLASS'} >= 200 && $qossettings{'CLASS'} < 221) {
|
||||
$qossettings{'DEVICE'} = $qossettings{'IMQ_DEV'};
|
||||
for ( $c = 2000 ; $c <= 2020 ; $c++ )
|
||||
{
|
||||
if ( $qossettings{'SCLASS'} ne $c )
|
||||
{ print "<option value='$c'>$c</option>\n"; }
|
||||
else { print "<option selected value='$c'>$c</option>\n"; }
|
||||
}
|
||||
}
|
||||
print <<END
|
||||
</select>
|
||||
<td width='33%' align='center'>
|
||||
<tr><td width='33%' align='right'>$Lang::tr{'priority'}:<td width='33%' align='left'><select name='PRIO'>
|
||||
END
|
||||
;
|
||||
for ( $c = 1 ; $c <= 7 ; $c++ )
|
||||
{
|
||||
if ( $qossettings{'PRIO'} ne $c )
|
||||
{ print "<option value='$c'>$c</option>\n"; }
|
||||
else { print "<option selected value='$c'>$c</option>\n"; }
|
||||
}
|
||||
print <<END
|
||||
<td width='33%' align='center'>
|
||||
<tr><td width='33%' align='right'>$Lang::tr{'guaranteed bandwith'}:
|
||||
<td width='33%' align='left'><input type='text' name='MINBWDTH' maxlength='8' required='1' value="$qossettings{'MINBWDTH'}" />
|
||||
<td width='33%' align='center'>
|
||||
<tr><td width='33%' align='right'>$Lang::tr{'max bandwith'}:
|
||||
<td width='33%' align='left'><input type='text' name='MAXBWDTH' maxlength='8' required='1' value="$qossettings{'MAXBWDTH'}" />
|
||||
<td width='33%' align='center'>
|
||||
<tr><td width='33%' align='right'>Burst:
|
||||
<td width='33%' align='left'><input type='text' name='BURST' maxlength='8' value="$qossettings{'BURST'}" />
|
||||
<td width='33%' align='center'>
|
||||
<tr><td width='33%' align='right'>Ceilburst:
|
||||
<td width='33%' align='left'><input type='text' name='CBURST' maxlength='8' value="$qossettings{'CBURST'}" />
|
||||
<td width='33%' align='center'>
|
||||
<tr><td width='33%' align='right'>TOS-Bit:
|
||||
<td width='33%' align='left'><select name='TOS'>
|
||||
<option value='0'>$Lang::tr{'disabled'} (0)</option>
|
||||
<option value='8'>$Lang::tr{'min delay'} (8)</option>
|
||||
<option value='4'>$Lang::tr{'max throughput'} (4)</option>
|
||||
<option value='2'>$Lang::tr{'max reliability'} (2)</option>
|
||||
<option value='1'>$Lang::tr{'min costs'} (1)</option></select>
|
||||
<td width='33%' align='center'><input type='hidden' name='CLASS' value="$qossettings{'CLASS'}" />
|
||||
<input type='hidden' name='DEVICE' value="$qossettings{'DEVICE'}" />
|
||||
<input type='submit' name='DOSCLASS' value='$Lang::tr{'save'}' /> <input type='reset' value='$Lang::tr{'reset'}' />
|
||||
</table></form>
|
||||
END
|
||||
;
|
||||
&Header::closebox();
|
||||
}
|
||||
|
||||
sub level7rule {
|
||||
&Header::openbox('100%', 'center', $Lang::tr{'Level7 Rule'});
|
||||
print <<END
|
||||
|
@ -1164,9 +1028,6 @@ sub showclasses {
|
|||
@classes = <FILE>;
|
||||
close FILE;
|
||||
if (@classes) {
|
||||
open( FILE, "< $subclassfile" ) or die "Unable to read $subclassfile";
|
||||
@subclasses = <FILE>;
|
||||
close FILE;
|
||||
open( FILE, "< $level7file" ) or die "Unable to read $level7file";
|
||||
@l7rules = <FILE>;
|
||||
close FILE;
|
||||
|
@ -1203,11 +1064,6 @@ sub showclasses {
|
|||
<td align='center' bgcolor='$color{'color22'}'>$classline[7]</td>
|
||||
<td align='right' bgcolor='$color{'color22'}'>
|
||||
<table border='0'><tr>
|
||||
<td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<input type='hidden' name='CLASS' value='$classline[1]' />
|
||||
<input type='hidden' name='ACTION' value='$Lang::tr{'qos add subclass'}' />
|
||||
<input type='image' alt='$Lang::tr{'add subclass'}' title='$Lang::tr{'add subclass'}' src='/images/addblue.gif' />
|
||||
</form>
|
||||
<td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<input type='hidden' name='CLASS' value='$classline[1]' />
|
||||
<input type='hidden' name='ACTION' value='$Lang::tr{'Add Rule'}' />
|
||||
|
@ -1386,41 +1242,6 @@ END
|
|||
}
|
||||
END
|
||||
;
|
||||
foreach $subclassentry (sort @subclasses)
|
||||
{
|
||||
@subclassline = split( /\;/, $subclassentry );
|
||||
if ( $subclassline[1] eq $classline[1] ) {
|
||||
print <<END
|
||||
<tr><td align='center' bgcolor='#FAFAFA'>$Lang::tr{'Subclass'}:
|
||||
<td align='center' bgcolor='#FAFAFA'>$subclassline[2]
|
||||
<td align='center' bgcolor='#FAFAFA'>$subclassline[3]
|
||||
<td align='center' bgcolor='#FAFAFA'>$subclassline[4]
|
||||
<td align='center' bgcolor='#FAFAFA'>$subclassline[5]
|
||||
<td align='center' bgcolor='#FAFAFA'>$subclassline[6]
|
||||
<td align='center' bgcolor='#FAFAFA'>$subclassline[7]
|
||||
<td align='center' bgcolor='#FAFAFA'>$subclassline[8]
|
||||
<td align='right' bgcolor='#FAFAFA'>
|
||||
<table border='0'><tr>
|
||||
<td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<input type='hidden' name='CLASS' value='$subclassline[2]' />
|
||||
<input type='hidden' name='ACTION' value='$Lang::tr{'Add Rule'}' />
|
||||
<input type='image' alt='$Lang::tr{'Add Rule'}' title='$Lang::tr{'Add Rule'}' src='/images/addgreen.gif' />
|
||||
</form>
|
||||
<td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<input type='hidden' name='CLASS' value='$subclassline[2]' />
|
||||
<input type='hidden' name='DOSCLASS' value='$Lang::tr{'edit'}' />
|
||||
<input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' />
|
||||
</form>
|
||||
<td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<input type='hidden' name='CLASS' value='$subclassline[2]' />
|
||||
<input type='hidden' name='DOSCLASS' value='$Lang::tr{'delete'}' />
|
||||
<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' />
|
||||
</form>
|
||||
</table>
|
||||
END
|
||||
;
|
||||
}
|
||||
}
|
||||
print <<END
|
||||
</table>
|
||||
END
|
||||
|
@ -1488,21 +1309,3 @@ sub validclass {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub validsubclass {
|
||||
if ( $qossettings{'VALID'} eq 'yes' ) {
|
||||
open( FILE, "< $subclassfile" ) or die "Unable to read $subclassfile";
|
||||
@tmp = <FILE>;
|
||||
close FILE;
|
||||
foreach $subclassentry (sort @tmp)
|
||||
{
|
||||
@tmpline = split( /\;/, $subclassentry );
|
||||
if ( $tmpline[2] eq $qossettings{'SCLASS'} )
|
||||
{
|
||||
$qossettings{'VALID'} = 'no';
|
||||
$message = "$Lang::tr{'class in use'}";
|
||||
last
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue