Give tcpri processing its own function. Add some comments

Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
Tom Eastep 2011-08-27 11:44:42 -07:00
parent eb9d798ad3
commit 0ef8e3b1d6

View File

@ -1273,6 +1273,9 @@ sub process_tc_filter() {
} }
#
# Process the tcfilter file storing the compiled filters in the %tcdevices table
#
sub process_tcfilters() { sub process_tcfilters() {
my $fn = open_file 'tcfilters'; my $fn = open_file 'tcfilters';
@ -1307,6 +1310,9 @@ sub process_tcfilters() {
} }
} }
#
# Process a tcpri record
#
sub process_tc_priority() { sub process_tc_priority() {
my ( $band, $proto, $ports , $address, $interface, $helper ) = split_line1 1, 6, 'tcpri'; my ( $band, $proto, $ports , $address, $interface, $helper ) = split_line1 1, 6, 'tcpri';
@ -1368,21 +1374,55 @@ sub process_tc_priority() {
} }
} }
sub process_simple_traffic_shaping() { #
# Process tcinterfaces
my $interfaces; #
sub process_tcinterfaces() {
my $fn = open_file 'tcinterfaces'; my $fn = open_file 'tcinterfaces';
if ( $fn ) { if ( $fn ) {
first_entry "$doing $fn..."; first_entry "$doing $fn...";
process_simple_device, $interfaces++ while read_a_line; process_simple_device while read_a_line;
} else { }
$fn = find_file 'tcinterfaces';
} }
#
# Process tcpri
#
sub process_tcpri() {
my $fn = find_file 'tcinterfaces';
my $fn1 = open_file 'tcpri';
if ( $fn1 ) {
first_entry
sub {
progress_message2 "$doing $fn1...";
warning_message "There are entries in $fn1 but $fn was empty" unless @tcdevices || $family == F_IPV6;
};
process_tc_priority while read_a_line;
clear_comment;
if ( $ipp2p ) {
insert_irule( $mangle_table->{tcpost} ,
j => 'CONNMARK --restore-mark --ctmask ' . in_hex( $globals{TC_MASK} ) ,
0 ,
mark => '--mark 0/' . in_hex( $globals{TC_MASK} )
);
add_ijump( $mangle_table->{tcpost} ,
j => 'CONNMARK --save-mark --ctmask ' . in_hex( $globals{TC_MASK} ),
mark => '! --mark 0/' . in_hex( $globals{TC_MASK} )
);
}
}
} }
#
# Process the compilex traffic shaping files storing the configuration in %tcdevices and %tcclasses
#
sub process_traffic_shaping() { sub process_traffic_shaping() {
my $fn = open_file 'tcdevices'; my $fn = open_file 'tcdevices';
@ -1574,13 +1614,13 @@ sub process_traffic_shaping() {
} }
# #
# Validate the TC configuration storing basic information in %tcdevices # Validate the TC configuration storing basic information in %tcdevices and %tcdevices
# #
sub process_tc() { sub process_tc() {
if ( $config{TC_ENABLED} eq 'Internal' || $config{TC_ENABLED} eq 'Shared' ) { if ( $config{TC_ENABLED} eq 'Internal' || $config{TC_ENABLED} eq 'Shared' ) {
process_traffic_shaping; process_traffic_shaping;
} elsif ( $config{TC_ENABLED} eq 'Simple' ) { } elsif ( $config{TC_ENABLED} eq 'Simple' ) {
process_simple_traffic_shaping; process_tcinterfaces;
} }
# #
# The Providers module needs to know which devices are tc-enabled so that # The Providers module needs to know which devices are tc-enabled so that
@ -1590,6 +1630,9 @@ sub process_tc() {
\%tcdevices; \%tcdevices;
} }
#
# Call the setup_${dev}_tc functions
#
sub setup_traffic_shaping() { sub setup_traffic_shaping() {
save_progress_message q("Setting up Traffic Control..."); save_progress_message q("Setting up Traffic Control...");
@ -1714,37 +1757,7 @@ sub setup_tc() {
save_progress_message q('Setting up Traffic Control...'); save_progress_message q('Setting up Traffic Control...');
append_file $globals{TC_SCRIPT}; append_file $globals{TC_SCRIPT};
} else { } else {
if ( $config{TC_ENABLED} eq 'Simple' ) { process_tcpri if $config{TC_ENABLED} eq 'Simple';
my $fn = find_file 'tcinterfaces';
my $fn1 = open_file 'tcpri';
if ( $fn1 ) {
first_entry
sub {
progress_message2 "$doing $fn1...";
warning_message "There are entries in $fn1 but $fn was empty" unless @tcdevices || $family == F_IPV6;
};
process_tc_priority while read_a_line;
clear_comment;
if ( $ipp2p ) {
insert_irule( $mangle_table->{tcpost} ,
j => 'CONNMARK --restore-mark --ctmask ' . in_hex( $globals{TC_MASK} ) ,
0 ,
mark => '--mark 0/' . in_hex( $globals{TC_MASK} )
);
add_ijump( $mangle_table->{tcpost} ,
j => 'CONNMARK --save-mark --ctmask ' . in_hex( $globals{TC_MASK} ),
mark => '! --mark 0/' . in_hex( $globals{TC_MASK} )
);
}
}
}
setup_traffic_shaping; setup_traffic_shaping;
} }