| # A script that generates text output of the ebtables rules. |
| # Similar to iptables-save. |
| # It can be used to store active configuration to /etc/sysconfig/ebtables |
| my $ebtables = "__EXEC_PATH__/ebtables"; |
| # ======================================================== |
| # ======================================================== |
| foreach $line (split("\n",$_[0])) { |
| if ($line =~ m/Bridge table: (.*)/) { |
| if ($line =~ m/Bridge chain: (.*?), entries:.* policy: (.*)/) { |
| $chains = $chains . ":$1 $2\n"; |
| $line =~ s/, pcnt = (.*) -- bcnt = (.*)/-c $1 $2/; |
| $rules = $rules . "-A $chain $line\n"; |
| # ======================================================== |
| unless (-x $ebtables) { exit -1 }; |
| print "# Generated by ebtables-save v$version on " . `date`; |
| if (defined($ENV{'EBTABLES_SAVE_COUNTER'}) && $ENV{'EBTABLES_SAVE_COUNTER'} eq "yes") { |
| foreach $table_name (split("\n", `grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//`)) { |
| $table =`$ebtables -t $table_name -L $cnt`; |
| unless ($? == 0) { print $table; exit -1 }; |