+auto vmbr3
+iface vmbr3 inet manual
+ bridge-ports vxlan3
+ bridge-stp off
+ bridge-fd 0
+ bridge-vlan-aware yes
+ bridge-vids 2-10
+PART
+chomp $vmbr123_part;
+
+$config->{ifaces}->{vxlan3} = {
+ type => 'vxlan',
+ method => 'manual',
+ families => ['inet'],
+ 'vxlan-id' => 3,
+ 'vxlan-remoteip' => [$remoteip1, $remoteip2],
+ 'bridge-access' => 3,
+ autostart => 1
+};
+
+my $vx = $config->{ifaces}->{vxlan2};
+$vx->{'bridge-learning'} = 'off';
+$vx->{'bridge-arp-nd-suppress'} = 'on';
+$vx->{'bridge-unicast-flood'} = 'off';
+$vx->{'bridge-multicast-flood'} = 'off';
+my $vxlan123_part = $vxlan12_part ."\n" . <<"PART";
+ bridge-arp-nd-suppress on
+ bridge-learning off
+ bridge-multicast-flood off
+ bridge-unicast-flood off
+
+auto vxlan3
+iface vxlan3 inet manual
+ vxlan-id 3
+ vxlan-remoteip $remoteip1
+ vxlan-remoteip $remoteip2
+ bridge-access 3
+PART
+chomp $vxlan123_part;
+
+expect load('loopback') . <<"CHECK";
+source-directory interfaces.d
+
+iface eth0 inet manual
+
+$eth1_part
+
+iface eth2 inet manual
+
+iface eth3 inet manual
+
+iface eth4 inet manual
+
+iface eth5 inet manual
+
+$bond0_part
+
+$vmbr0_part
+
+$vmbr123_part
+
+$vxlan123_part
+
+CHECK
+
+#
+# Now add vlans on all types of interfaces: vmbr1, bond0 and eth1
+#
+
+$config->{ifaces}->{'vmbr1.100'} = {
+ type => 'vlan',
+ mtu => 1300,
+ method => 'manual',
+ families => ['inet'],
+ autostart => 1
+};
+
+$config->{ifaces}->{'bond0.100'} = {
+ type => 'vlan',
+ 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
+};
+
+$config->{ifaces}->{'eth1.100'} = {
+ type => 'vlan',
+ mtu => 1400,
+ method => 'manual',
+ families => ['inet'],
+ autostart => 1
+};
+
+$config->{ifaces}->{'vmbr4'} = {
+ mtu => 1200,
+ type => 'bridge',
+ method => 'manual',
+ families => ['inet'],
+ bridge_stp => 'off',
+ bridge_fd => 0,
+ bridge_ports => 'bond0.100',
+ autostart => 1
+};
+
+$config->{ifaces}->{'vmbr5'} = {
+ mtu => 1100,
+ type => 'bridge',
+ method => 'manual',
+ families => ['inet'],
+ bridge_stp => 'off',
+ bridge_fd => 0,
+ bridge_ports => 'vmbr4.99',
+ autostart => 1
+};
+
+$config->{ifaces}->{vmbr6} = {
+ ovs_mtu => 1400,
+ type => 'OVSBridge',
+ ovs_ports => 'bond1 ovsintvlan',
+ method => 'manual',
+ families => ['inet'],
+ autostart => 1
+};
+
+$config->{ifaces}->{bond1} = {
+ ovs_mtu => 1300,
+ type => 'OVSBond',
+ ovs_bridge => 'vmbr6',
+ ovs_bonds => 'eth4 eth5',
+ ovs_options => 'bond_mode=active-backup',
+ method => 'manual',
+ families => ['inet'],
+ autostart => 1
+};
+
+$config->{ifaces}->{ovsintvlan} = {
+ ovs_mtu => 1300,
+ type => 'OVSIntPort',
+ ovs_bridge => 'vmbr6',
+ ovs_options => 'tag=14',
+ method => 'manual',
+ families => ['inet'],
+ autostart => 1
+};
+
+expect load('loopback') . <<"CHECK";
+source-directory interfaces.d
+
+iface eth0 inet manual
+
+$eth1_part
+
+iface eth2 inet manual
+
+iface eth3 inet manual
+
+iface eth4 inet manual
+
+iface eth5 inet manual
+
+auto eth1.100
+iface eth1.100 inet manual
+ mtu 1400
+
+allow-vmbr6 ovsintvlan
+iface ovsintvlan inet manual
+ ovs_type OVSIntPort
+ ovs_bridge vmbr6
+ ovs_mtu 1300
+ ovs_options tag=14
+
+$bond0_part
+
+allow-vmbr6 bond1
+iface bond1 inet manual
+ ovs_bonds eth4 eth5
+ ovs_type OVSBond
+ ovs_bridge vmbr6
+ ovs_mtu 1300
+ ovs_options bond_mode=active-backup
+
+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
+
+$vmbr123_part
+
+auto vmbr4
+iface vmbr4 inet manual
+ bridge-ports bond0.100
+ bridge-stp off
+ bridge-fd 0
+ mtu 1200
+
+auto vmbr5
+iface vmbr5 inet manual
+ bridge-ports vmbr4.99
+ bridge-stp off
+ bridge-fd 0
+ mtu 1100
+
+allow-ovs vmbr6
+iface vmbr6 inet manual
+ ovs_type OVSBridge
+ ovs_ports bond1 ovsintvlan
+ ovs_mtu 1400
+
+auto vmbr1.100
+iface vmbr1.100 inet manual
+ mtu 1300
+
+$vxlan123_part
+