---
 src/PVE/INotify.pm                              | 11 +++++++++--
 test/etc_network_interfaces/t.create_network.pl | 14 ++++++++++++++
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm
index f837596..1a60708 100644
--- a/src/PVE/INotify.pm
+++ b/src/PVE/INotify.pm
@@ -954,6 +954,7 @@ sub __read_etc_network_interfaces {
                        'bridge-multicast-flood' => 1,
                        'bond_miimon' => 1,
                        'bond_xmit_hash_policy' => 1,
+                       'vlan-protocol' => 1,
                        'vxlan-id' => 1,
                        'vxlan-svcnodeip' => 1,
                        'vxlan-physdev' => 1,
@@ -1201,6 +1202,10 @@ sub __interface_to_string {
            $raw .= "\tbond-xmit-hash-policy $d->{'bond_xmit_hash_policy'}\n";
        }
        $done->{'bond_xmit_hash_policy'} = 1;
+    } elsif ($d->{type} eq 'vlan') {
+       die "$iface: wrong vlan-protocol $d->{'vlan-protocol'}\n" 
+           if $d->{'vlan-protocol'} && $d->{'vlan-protocol'} ne '802.1ad' && 
$d->{'vlan-protocol'} ne '802.1q';
+       
     } elsif ($d->{type} eq 'vxlan') {
 
        foreach my $k (qw(vxlan-id vxlan-svcnodeip vxlan-physdev 
vxlan-local-tunnelip)) {
@@ -1441,11 +1446,13 @@ sub __write_etc_network_interfaces {
 
            if ($n->{type} eq 'bridge' && !$n->{bridge_vlan_aware}) {
                die "vlan '$iface' - bridge vlan aware is not enabled on parent 
'$p'\n";
-           } elsif ($n->{type} ne 'eth' && $n->{type} ne 'bridge' && 
$n->{type} ne 'bond') {
+           } elsif ($n->{type} ne 'eth' && $n->{type} ne 'bridge' && 
$n->{type} ne 'bond' && $n->{type} ne 'vlan') {
                die "vlan '$iface' - wrong interface type on parent '$p' " .
-                   "('$n->{type}' != 'eth|bond|bridge' )\n";
+                   "('$n->{type}' != 'eth|bond|bridge|vlan' )\n";
            }
+
            &$check_mtu($ifaces, $p, $iface);
+
        }
     }
 
diff --git a/test/etc_network_interfaces/t.create_network.pl 
b/test/etc_network_interfaces/t.create_network.pl
index e446f53..bf5b4b6 100644
--- a/test/etc_network_interfaces/t.create_network.pl
+++ b/test/etc_network_interfaces/t.create_network.pl
@@ -305,6 +305,15 @@ $config->{ifaces}->{'bond0.100'} = {
     mtu => 1300,
     method => 'manual',
     families => ['inet'],
+    'vlan-protocol' => '802.1ad',
+    autostart => 1
+};
+
+$config->{ifaces}->{'bond0.100.10'} = {
+    type => 'vlan',
+    mtu => 1300,
+    method => 'manual',
+    families => ['inet'],
     autostart => 1
 };
 
@@ -336,6 +345,11 @@ $bond0_part
 auto bond0.100
 iface bond0.100 inet manual
        mtu 1300
+       vlan-protocol 802.1ad
+
+auto bond0.100.10
+iface bond0.100.10 inet manual
+       mtu 1300
 
 $vmbr0_part
 
-- 
2.11.0

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to