+ my $ruleset_raw = $ruleset->{raw};
+ my $active_chains_raw = iptables_get_chains(undef, 'raw');
+ my $statushash_raw = get_ruleset_status($ruleset_raw, $active_chains_raw, \&iptables_chain_digest);
+
+ foreach my $chain (sort keys %$ruleset_raw) {
+ my $stat = $statushash_raw->{$chain};
+ if ($stat->{action} ne 'exists') {
+ warn "unable to update chain '$chain'\n";
+ $errors = 1;
+ }
+ }
+
+ my $rulesetv6_raw = $rulesetv6->{raw};
+ my $active_chainsv6_raw = iptables_get_chains("ip6tables", 'raw');
+ my $statushashv6_raw = get_ruleset_status($rulesetv6_raw, $active_chainsv6_raw, \&iptables_chain_digest);
+
+ foreach my $chain (sort keys %$rulesetv6_raw) {
+ my $stat = $statushashv6_raw->{$chain};
+ if ($stat->{action} ne 'exists') {
+ warn "unable to update chain '$chain'\n";
+ $errors = 1;
+ }
+ }
+
+ my $active_ebtables_chains = ebtables_get_chains();
+ my $ebtables_statushash = get_ruleset_status($ebtables_ruleset,
+ $active_ebtables_chains, \&iptables_chain_digest,
+ $pve_ebtables_chainname_regex);
+
+ foreach my $chain (sort keys %$ebtables_ruleset) {
+ my $stat = $ebtables_statushash->{$chain};
+ if ($stat->{action} ne 'exists') {
+ warn "ebtables : unable to update chain '$chain'\n";
+ $errors = 1;
+ }
+ }
+