1 package PVE
::Network
::SDN
::Zones
::VlanPlugin
;
5 use PVE
::Network
::SDN
::Zones
::Plugin
;
7 use base
('PVE::Network::SDN::Zones::Plugin');
13 PVE
::JSONSchema
::register_format
('pve-sdn-vlanrange', \
&pve_verify_sdn_vlanrange
);
14 sub pve_verify_sdn_vlanrange
{
17 PVE
::Network
::SDN
::Zones
::Plugin
::parse_tag_number_or_range
($vlanstr, '4096');
33 nodes
=> { optional
=> 1},
34 'bridge' => { optional
=> 0 },
38 # Plugin implementation
39 sub generate_sdn_config
{
40 my ($class, $plugin_config, $zoneid, $vnetid, $vnet, $controller, $interfaces_config, $config) = @_;
45 my ($class, $plugin_config, $zone, $id, $vnet, $err_config, $status, $vnet_status, $zone_status) = @_;
47 my $bridge = $plugin_config->{bridge
};
48 $vnet_status->{$id}->{zone
} = $zone;
49 $zone_status->{$zone}->{status
} = 'available' if !defined($zone_status->{$zone}->{status
});
52 $vnet_status->{$id}->{status
} = 'pending';
53 $vnet_status->{$id}->{statusmsg
} = $err_config;
54 $zone_status->{$zone}->{status
} = 'pending';
55 } elsif ($status->{$bridge}->{status
} && $status->{$bridge}->{status
} eq 'pass') {
56 $vnet_status->{$id}->{status
} = 'available';
58 $vnet_status->{$id}->{status
} = 'error';
59 $vnet_status->{$id}->{statusmsg
} = 'missing bridge';
60 $zone_status->{$zone}->{status
} = 'error';