]>
git.proxmox.com Git - pve-network.git/blob - PVE/Network/SDN/Zones/QinQPlugin.pm
08448dc3c46ba745bedc68b06ecc7171d04dbeaa
1 package PVE
::Network
::SDN
::Zones
::QinQPlugin
;
5 use PVE
::Network
::SDN
::Zones
::VlanPlugin
;
7 use base
('PVE::Network::SDN::Zones::VlanPlugin');
17 description
=> "vlan tag",
25 nodes
=> { optional
=> 1},
26 'tag' => { optional
=> 0 },
27 'bridge' => { optional
=> 0 },
31 # Plugin implementation
32 sub generate_sdn_config
{
33 my ($class, $plugin_config, $zoneid, $vnetid, $vnet, $controller, $interfaces_config, $config) = @_;
35 my $tag = $plugin_config->{tag
};
36 my $mtu = $plugin_config->{mtu
};
37 my $bridge = $plugin_config->{'bridge'};
39 die "missing vlan tag" if !$tag;
41 if (!$config->{$zoneid}) {
43 my @iface_config = ();
44 push @iface_config, "mtu $mtu" if $mtu;
45 push @iface_config, "bridge-stp off";
46 push @iface_config, "bridge-fd 0";
47 push @iface_config, "bridge-vlan-aware yes";
48 push @iface_config, "bridge-vids 2-4094";
49 push(@{$config->{$zoneid}}, @iface_config);
51 #main bridge. ifupdown2 will merge it
53 push @iface_config, "bridge-ports $zoneid.$tag";
54 push(@{$config->{$bridge}}, @iface_config);