Rework interface roles to match cookiecutter template options

Change-Id: I26ddff3af840b805319ba2805e1cc80af22a5735
Reviewed-on: https://review.gerrithub.io/377228
Reviewed-by: Dennis Dmitriev <dis.xcom@gmail.com>
Tested-by: Dennis Dmitriev <dis.xcom@gmail.com>
diff --git a/tcp_tests/environment/environment_inventory/lab03_physical_inventory.yaml b/tcp_tests/environment/environment_inventory/lab03_physical_inventory.yaml
index 44b82ae..8f85554 100644
--- a/tcp_tests/environment/environment_inventory/lab03_physical_inventory.yaml
+++ b/tcp_tests/environment/environment_inventory/lab03_physical_inventory.yaml
@@ -8,9 +8,9 @@
       - linux_system_codename_xenial
       interfaces:
         enp3s0f0:
-          role: management_single
+          role: single_mgm
         enp3s0f1:
-          role: control_vlan_bond0
+          role: bond0_ab_ctl
 
     kvm02.mcp11-ovs-dpdk.local:
       reclass_storage_name: infra_kvm_node02
@@ -19,9 +19,9 @@
       - linux_system_codename_xenial
       interfaces:
         eno1:
-          role: management_single
+          role: single_mgm
         eno2:
-          role: control_vlan_bond0
+          role: bond0_ab_ctl
 
     kvm03.mcp11-ovs-dpdk.local:
       reclass_storage_name: infra_kvm_node03
@@ -30,9 +30,9 @@
       - linux_system_codename_xenial
       interfaces:
         eno1:
-          role: management_single
+          role: single_mgm
         eno2:
-          role: control_vlan_bond0
+          role: bond0_ab_ctl
 
     cmp001.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_compute_node01
@@ -41,16 +41,16 @@
       - linux_system_codename_xenial
       interfaces:
         enp3s0f0:
-          role: management_single
+          role: single_mgm
         enp3s0f1:
-          role: control_vlan_bond0
+          role: bond0_ab_ctl
         enp5s0f0:
-          role: control_vlan_bond0
+          role: bond0_ab_ctl
         enp5s0f1:
-          role: private_dpdk_ovs
+          role: bond2_dpdk_prv
           dpdk_pci: '0000:05:00.1'
         enp5s0f2:
-          role: private_dpdk_ovs
+          role: bond2_dpdk_prv
           dpdk_pci: '0000:05:00.2'
 
     cmp002.mcp11-ovs-dpdk.local:
@@ -60,16 +60,16 @@
       - linux_system_codename_xenial
       interfaces:
         eno1:
-          role: management_single
+          role: single_mgm
         eth0:
-          role: control_vlan_bond0
+          role: bond0_ab_ctl
         eth3:
-          role: control_vlan_bond0
+          role: bond0_ab_ctl
         eth2:
-          role: private_dpdk_ovs
+          role: bond2_dpdk_prv
           dpdk_pci: '0000:05:00.1'
         eth4:
-          role: private_dpdk_ovs
+          role: bond2_dpdk_prv
           dpdk_pci: '0000:0b:00.0'
 
     gtw01.mcp11-ovs-dpdk.local:
@@ -79,9 +79,9 @@
       - linux_system_codename_xenial
       interfaces:
         enp2s0f0:
-          role: management_single
+          role: single_mgm
         enp2s0f1:
-          role: control_floating_bond0_ovs
+          role: bond0_ab_dvr_vlan_ctl_prv_floating
 
     gtw02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_gateway_node02
@@ -90,6 +90,6 @@
       - linux_system_codename_xenial
       interfaces:
         enp2s0f0:
-          role: management_single
+          role: single_mgm
         enp2s0f1:
-          role: control_floating_bond0_ovs
+          role: bond0_ab_dvr_vlan_ctl_prv_floating
diff --git a/tcp_tests/environment/environment_inventory/vcp_os_sl_inventory.yaml b/tcp_tests/environment/environment_inventory/vcp_os_sl_inventory.yaml
index 78c6ba6..d5e043b 100644
--- a/tcp_tests/environment/environment_inventory/vcp_os_sl_inventory.yaml
+++ b/tcp_tests/environment/environment_inventory/vcp_os_sl_inventory.yaml
@@ -8,7 +8,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     ctl02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_control_node02
@@ -17,7 +17,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     ctl03.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_control_node03
@@ -26,7 +26,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     dbs01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_database_node01
@@ -35,7 +35,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     dbs02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_database_node01
@@ -44,7 +44,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     dbs03.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_database_node01
@@ -53,7 +53,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     msg01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_message_queue_node01
@@ -62,7 +62,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     msg02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_message_queue_node02
@@ -71,7 +71,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     msg03.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_message_queue_node03
@@ -80,7 +80,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mdb01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_telemetry_node01
@@ -89,7 +89,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mdb02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_telemetry_node02
@@ -98,7 +98,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mdb03.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_telemetry_node03
@@ -107,7 +107,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     prx01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_proxy_node01
@@ -116,7 +116,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     prx02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_proxy_node02
@@ -125,7 +125,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mon01.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_monitor_node01
@@ -134,7 +134,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mon02.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_monitor_node02
@@ -143,7 +143,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mon03.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_monitor_node03
@@ -152,7 +152,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mtr01.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_telemetry_node01
@@ -161,7 +161,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mtr02.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_telemetry_node02
@@ -170,7 +170,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mtr03.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_telemetry_node03
@@ -179,7 +179,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     log01.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_log_node01
@@ -188,7 +188,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     log02.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_log_node02
@@ -197,7 +197,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     log03.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_log_node03
@@ -206,4 +206,4 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
diff --git a/tcp_tests/environment/environment_inventory/virtual-devops-mcp-ocata-sl2.yaml b/tcp_tests/environment/environment_inventory/virtual-devops-mcp-ocata-sl2.yaml
index d68787c..d5c7a1b 100644
--- a/tcp_tests/environment/environment_inventory/virtual-devops-mcp-ocata-sl2.yaml
+++ b/tcp_tests/environment/environment_inventory/virtual-devops-mcp-ocata-sl2.yaml
@@ -6,7 +6,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens4:
-          role: control_vcp_single
+          role: single_ctl
 
     kvm02.mcp11-ovs-dpdk.local:
       reclass_storage_name: infra_kvm_node02
@@ -15,7 +15,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens4:
-          role: control_vcp_single
+          role: single_ctl
 
     kvm03.mcp11-ovs-dpdk.local:
       reclass_storage_name: infra_kvm_node03
@@ -24,7 +24,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens4:
-          role: control_vcp_single
+          role: single_ctl
 
     cid01.mcp11-ovs-dpdk.local:
       reclass_storage_name: cicd_control_node01
@@ -33,7 +33,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     cid02.mcp11-ovs-dpdk.local:
       reclass_storage_name: cicd_control_node02
@@ -42,7 +42,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     cid03.mcp11-ovs-dpdk.local:
       reclass_storage_name: cicd_control_node03
@@ -51,7 +51,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     ctl01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_control_node01
@@ -62,7 +62,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     ctl02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_control_node02
@@ -72,7 +72,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     ctl03.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_control_node03
@@ -82,7 +82,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     dbs01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_database_node01
@@ -92,7 +92,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     dbs02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_database_node02
@@ -102,7 +102,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     dbs03.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_database_node03
@@ -112,7 +112,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     msg01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_message_queue_node01
@@ -121,7 +121,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     msg02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_message_queue_node02
@@ -130,7 +130,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     msg03.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_message_queue_node03
@@ -139,7 +139,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mdb01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_telemetry_node01
@@ -148,7 +148,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mdb02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_telemetry_node02
@@ -157,7 +157,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mdb03.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_telemetry_node03
@@ -166,7 +166,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     prx01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_proxy_node01
@@ -175,7 +175,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     prx02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_proxy_node02
@@ -184,7 +184,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mtr01.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_telemetry_node01
@@ -193,7 +193,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mtr02.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_telemetry_node02
@@ -202,7 +202,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     mtr03.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_telemetry_node03
@@ -211,7 +211,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     log01.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_log_node01
@@ -220,7 +220,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     log02.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_log_node02
@@ -229,7 +229,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     log03.mcp11-ovs-dpdk.local:
       reclass_storage_name: stacklight_log_node03
@@ -238,7 +238,7 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 
     # Generator-based computes. For compatibility only
     cmp000.mcp11-ovs-dpdk.local:
@@ -248,10 +248,13 @@
       - linux_system_codename_xenial
       interfaces:
         #ens3:
-        #  role: management_single
+        #  role: single_mgm
         ens4:
-          role: control_bond0
-        #TBD: ens5: tenant
+          role: single_ctl
+        ens5:
+          role: bond0_ab_ovs_vxlan_ctl_mesh
+        ens6:
+          role: bond1_ab_ovs_floating
 
     gtw01.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_gateway_node01
@@ -260,11 +263,13 @@
       - linux_system_codename_xenial
       interfaces:
         #ens3:
-        #  role: management_single
+        #  role: single_mgm
         ens4:
-          role: control_bond0
-        #TBD: ens5: tenant
-        #TBD: ens6: external
+          role: single_ctl
+        ens5:
+          role: bond0_ab_ovs_vxlan_ctl_mesh
+        ens6:
+          role: bond1_ab_ovs_floating
 
     gtw02.mcp11-ovs-dpdk.local:
       reclass_storage_name: openstack_gateway_node02
@@ -273,9 +278,10 @@
       - linux_system_codename_xenial
       interfaces:
         #ens3:
-        #  role: management_single
+        #  role: single_mgm
         ens4:
-          role: control_bond0
-        #TBD: ens5: tenant
-        #TBD: ens6: external
-
+          role: single_ctl
+        ens5:
+          role: bond0_ab_ovs_vxlan_ctl_mesh
+        ens6:
+          role: bond1_ab_ovs_floating
diff --git a/tcp_tests/environment/environment_template/readme.txt b/tcp_tests/environment/environment_template/readme.txt
index 1804bb0..e364476 100644
--- a/tcp_tests/environment/environment_template/readme.txt
+++ b/tcp_tests/environment/environment_template/readme.txt
@@ -92,9 +92,9 @@
       - linux_system_codename_xenial
       interfaces:
         enp3s0f0:
-          role: management_single
+          role: single_mgm
         enp3s0f1:
-          role: control_bond0
+          role: bond0_ab_nondvr_vxlan_ctl_mesh
 ```
 
 Virtual Control Plane node example:
@@ -107,5 +107,5 @@
       - linux_system_codename_xenial
       interfaces:
         ens3:
-          role: control_vcp_single
+          role: single_ctl
 ```
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/.cookiecutter_compute.yml" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/.cookiecutter_compute.yml"
deleted file mode 100644
index 2e1e8e4..0000000
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/.cookiecutter_compute.yml"
+++ /dev/null
@@ -1,197 +0,0 @@
-  linux:
-    network:
-      host:
-        hostname:
-          address: ${_param:single_address}
-          names:
-          - ${linux:network:hostname}
-          - ${linux:network:fqdn}
-      interface:
-  {%- if not cookiecutter.get('openstack_nfv_dpdk_enabled', 'False') == 'True' %}
-        eth1:
-          mtu: 9000
-          enabled: true
-          type: slave
-          proto: manual
-          name: ${_param:primary_first_nic}
-          master: bond0
-        eth2:
-          mtu: 9000
-          enabled: true
-          type: slave
-          proto: manual
-          name: ${_param:primary_second_nic}
-          master: bond0
-
-
-    {%- if cookiecutter.openstack_network_engine == 'ovs' %}
-
-
-
-
-
-      bridge: openvswitch
-      {%- if not cookiecutter.openstack_ovs_dvr_enabled == 'True' %}
-        {%- if cookiecutter.openstack_ovs_encapsulation_type == 'vxlan' %}
-        bond0:
-          enabled: true
-          proto: manual
-          type: bond
-          use_interfaces:
-          - ${_param:primary_second_nic}
-          - ${_param:primary_first_nic}
-          slaves: ${_param:primary_second_nic} ${_param:primary_first_nic}
-          mode: {{ cookiecutter.compute_bond_mode }}
-        bond0.1:
-          name: bond0.${_param:control_vlan}
-          enabled: true
-          type: vlan
-          proto: static
-          address: ${_param:single_address}
-          netmask: ${_param:control_network_netmask}
-          use_interfaces:
-          - bond0
-        bond0.2:
-          name: bond0.${_param:tenant_vlan}
-          enabled: true
-          type: vlan
-          proto: manual
-          use_interfaces:
-          - bond0
-        br-mesh:
-          enabled: true
-          type: bridge
-          address: ${_param:tenant_address}
-          netmask: ${_param:tenant_network_netmask}
-          use_interfaces:
-          - bond0.${_param:tenant_vlan}
-        {%- elif cookiecutter.openstack_ovs_encapsulation_type == 'vlan' %}
-        bond0:
-          enabled: true
-          proto: manual
-          ovs_bridge: br-prv
-          ovs_type: OVSPort
-          type: bond
-          use_interfaces:
-          - ${_param:primary_second_nic} ${_param:primary_first_nic}
-          slaves: ${_param:primary_first_nic}
-          mode: {{ cookiecutter.compute_bond_mode }}
-        br-prv:
-          enabled: true
-          type: ovs_bridge
-        br-mgmt:
-          enabled: true
-          type: ovs_port
-          bridge: br-prv
-          proto: static
-          ovs_options: tag=${_param:control_vlan}
-          address: ${_param:single_address}
-          netmask: ${_param:control_network_netmask}
-        {%- endif %}
-
-      {%- elif cookiecutter.openstack_ovs_dvr_enabled == 'True' %}
-        bond0:
-          enabled: true
-          proto: manual
-          ovs_bridge: br-floating
-          ovs_type: OVSPort
-          type: bond
-          use_interfaces:
-          - ${_param:primary_first_nic}
-          - ${_param:primary_second_nic}
-          slaves: ${_param:primary_first_nic} ${_param:primary_second_nic}
-          mode: {{ cookiecutter.compute_bond_mode }}
-        br-floating:
-          enabled: true
-          type: ovs_bridge
-        br-mgmt:
-          enabled: true
-          type: ovs_port
-          bridge: br-floating
-          proto: static
-          ovs_options: tag=${_param:control_vlan}
-          address: ${_param:single_address}
-          netmask: ${_param:control_network_netmask}
-        {%- if cookiecutter.openstack_ovs_encapsulation_type == 'vxlan' %}
-        br-mesh:
-          enabled: true
-          type: ovs_port
-          bridge: br-floating
-          proto: static
-          ovs_options: tag=${_param:tenant_vlan}
-          address: ${_param:tenant_address}
-          netmask: ${_param:tenant_network_netmask}
-        {%- elif cookiecutter.openstack_ovs_encapsulation_type == 'vlan' %}
-        br-prv:
-          enabled: true
-          type: ovs_bridge
-        floating-to-prv:
-          enabled: true
-          type: ovs_port
-          port_type: patch
-          bridge: br-floating
-          peer: prv-to-floating
-        prv-to-floating:
-          enabled: true
-          type: ovs_port
-          port_type: patch
-          bridge: br-prv
-          peer: floating-to-prv
-        {%- endif %}
-      {%- endif %}
-    
-    
-    
-    
-    
-    
-    
-    {%- elif cookiecutter.openstack_network_engine == 'opencontrail' %}
-        bond0:
-          mtu: 9000
-          enabled: true
-          proto: manual
-          type: bond
-          use_interfaces:
-          - ${_param:primary_first_nic}
-          - ${_param:primary_second_nic}
-          slaves: ${_param:primary_first_nic} ${_param:primary_second_nic}
-          mode: {{ cookiecutter.compute_bond_mode }}
-        bond0.1:
-          mtu: 9000
-          name: bond0.${_param:control_vlan}
-          enabled: true
-          proto: static
-          type: vlan
-          use_interfaces:
-          - bond0
-          address: ${_param:single_address}
-          netmask: ${_param:control_network_netmask}
-        bond0.2:
-          mtu: 9000
-          name: bond0.${_param:tenant_vlan}
-          enabled: true
-          proto: manual
-          type: vlan
-          use_interfaces:
-          - bond0
-        vhost0:
-          enabled: true
-          type: eth
-          mtu: 9000
-          address: ${_param:tenant_address}
-          netmask: ${_param:tenant_network_netmask}
-          gateway: ${_param:tenant_network_gateway}
-          pre_up_cmds:
-          - /usr/lib/contrail/if-vhost0
-          use_interfaces:
-          - bond0.${_param:tenant_vlan}
-          name_servers:
-          - ${_param:dns_server01}
-          - ${_param:dns_server02}
-    {%- endif %}
-
-
-
-
-  {%- endif %}
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/.cookiecutter_gateway.yml" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/.cookiecutter_gateway.yml"
deleted file mode 100644
index 0a3c62e..0000000
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/.cookiecutter_gateway.yml"
+++ /dev/null
@@ -1,88 +0,0 @@
-{%- if cookiecutter.openstack_network_engine == 'ovs' %}
-classes:
-{%- if cookiecutter.get('local_repositories', 'False') == 'True' %}
-- system.linux.system.repo_local.mcp.openstack
-- system.linux.system.repo_local.mcp.extra
-- system.linux.system.repo_local.saltstack.xenial
-{%- else %}
-- system.linux.system.repo.mcp.openstack
-- system.linux.system.repo.mcp.extra
-- system.linux.system.repo.saltstack.xenial
-{%- endif %}
-- system.neutron.gateway.cluster
-- cluster.{{ cookiecutter.cluster_name }}.infra
-parameters:
-  _param:
-    interface_mtu: 1500
-    cluster_vip_address: ${_param:openstack_control_address}
-
-    linux_system_codename: xenial
-    keepalived_vip_interface: br-ctl
-    keepalived_vip_virtual_router_id: 69
-    primary_first_nic: {{ cookiecutter.gateway_primary_first_nic }}
-    primary_second_nic: {{ cookiecutter.gateway_primary_second_nic }}
-  linux:
-    network:
-      bridge: openvswitch
-      interface:
-        eth1:
-          enabled: true
-          type: slave
-          proto: manual
-          name: ${_param:primary_first_nic}
-          master: bond0
-        eth2:
-          enabled: true
-          type: slave
-          proto: manual
-          name: ${_param:primary_second_nic}
-          master: bond0
-        bond0:
-          enabled: true
-          proto: manual
-          ovs_bridge: br-floating
-          ovs_type: OVSPort
-          type: bond
-          use_interfaces:
-          - ${_param:primary_first_nic}
-          - ${_param:primary_second_nic}
-          slaves: ${_param:primary_first_nic} ${_param:primary_second_nic}
-          mode: active-backup
-        br-floating:
-          enabled: true
-          type: ovs_bridge
-        br-ctl:
-          enabled: true
-          type: ovs_port
-          bridge: br-floating
-          proto: static
-          ovs_options: tag=${_param:control_vlan}
-          address: ${_param:single_address}
-          netmask: ${_param:control_network_netmask}
-        {%- if cookiecutter.openstack_ovs_encapsulation_type == 'vxlan' %}
-        br-mesh:
-          enabled: true
-          type: ovs_port
-          bridge: br-floating
-          proto: static
-          ovs_options: tag=${_param:tenant_vlan}
-          address: ${_param:tenant_address}
-          netmask: ${_param:tenant_network_netmask}
-        {%- elif cookiecutter.openstack_ovs_encapsulation_type == 'vlan' %}
-        br-prv:
-          enabled: true
-          type: ovs_bridge
-        floating-to-prv:
-          enabled: true
-          type: ovs_port
-          port_type: patch
-          bridge: br-floating
-          peer: prv-to-floating
-        prv-to-floating:
-          enabled: true
-          type: ovs_port
-          port_type: patch
-          bridge: br-prv
-          peer: floating-to-prv
-        {%- endif %}
-{%- endif %}
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_contrail" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_contrail"
new file mode 100644
index 0000000..3147d1f
--- /dev/null
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_contrail"
@@ -0,0 +1,88 @@
+{#- Provides:     #}
+{#-   br_ctl (linux bridge) + control address #}
+{#-   br_mesh (linux bridge) + tenant address #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_vlan           #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:tenant_vlan           #}
+{#-   _param:tenant_address         #}
+{#-   _param:tenant_netmask         #}
+{#-   _param:tenant_network_gateway         #}
+{#-   _param:_param:dns_server01         #}
+{#-   _param:_param:dns_server02         #}
+
+              # {{ interfaces_role }}
+              {%- for interface_name, interface in interfaces.items() %}
+              {{ interface_name }}:
+                mtu: 9000
+                enabled: true
+                name: {{ interface_name }}
+                proto: manual
+                type: eth
+                ipflush_onchange: true
+              {%- endfor %}
+              bond0:
+                mtu: 9000
+                enabled: true
+                mode: active-backup
+                proto: manual
+                slaves: {{ ' '.join(interfaces.keys()) }}
+                type: bond
+                use_interfaces:
+                {%- for interface_name in interfaces.keys() %}
+                - {{ interface_name }}
+                {%- endfor %}
+                require_interfaces:
+                {%- for interface_name in interfaces.keys() %}
+                - {{ interface_name }}
+                {%- endfor %}
+
+              br_ctl:
+                address: ${_param:_esc}{_param:single_address}
+                enabled: true
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                proto: static
+                type: bridge
+                use_interfaces:
+                - bond0.${_param:_esc}{_param:control_vlan}
+                require_interfaces:
+                - bond0.${_param:_esc}{_param:control_vlan}
+              bond0.control_vlan:
+                mtu: 9000
+                name: bond0.${_param:_esc}{_param:control_vlan}
+                enabled: true
+                proto: manual
+                type: vlan
+                use_interfaces:
+                - bond0
+                require_interfaces:
+                - bond0
+
+              vhost0:
+                mtu: 9000
+                address: ${_param:_esc}{_param:tenant_address}
+                netmask: ${_param:_esc}{_param:tenant_network_netmask}
+                gateway: ${_param:_esc}{_param:tenant_network_gateway}
+                enabled: true
+                proto: static
+                type: eth
+                pre_up_cmds:
+                - /usr/lib/contrail/if-vhost0
+                name_servers:
+                - ${_param:_esc}{_param:dns_server01}
+                - ${_param:_esc}{_param:dns_server02}
+                use_interfaces:
+                - bond0.${_param:_esc}{_param:tenant_vlan}
+                require_interfaces:
+                - bond0.${_param:_esc}{_param:tenant_vlan}
+              bond0.tenant_vlan:
+                mtu: 9000
+                name: bond0.${_param:_esc}{_param:tenant_vlan}
+                enabled: true
+                proto: manual
+                type: vlan
+                use_interfaces:
+                - bond0
+                require_interfaces:
+                - bond0
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_vlan_bond0" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ctl"
similarity index 64%
rename from "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_vlan_bond0"
rename to "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ctl"
index 38874e5..4326138 100644
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_vlan_bond0"
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ctl"
@@ -1,7 +1,16 @@
+{#- Control network with bond. For control plane nodes #}
+{#- Provides:     #}
+{#-   br_ctl (linux bridge) + control address #}
+{#-   _param:keepalived_vip_interface = 'br_ctl' #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:control_vlan           #}
 
               # {{ interfaces_role }}
               {%- for interface_name, interface in interfaces.items() %}
               {{ interface_name }}:
+                mtu: 9000
                 enabled: true
                 name: {{ interface_name }}
                 proto: manual
@@ -22,7 +31,19 @@
                 {%- for interface_name in interfaces.keys() %}
                 - {{ interface_name }}
                 {%- endfor %}
-              bond0.2416:
+
+              br_ctl:
+                address: ${_param:_esc}{_param:single_address}
+                enabled: true
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                proto: static
+                type: bridge
+                use_interfaces:
+                - bond0.${_param:_esc}{_param:control_vlan}
+                require_interfaces:
+                - bond0.${_param:_esc}{_param:control_vlan}
+              bond0.control_vlan:
+                name: bond0.${_param:_esc}{_param:control_vlan}
                 enabled: true
                 proto: manual
                 type: vlan
@@ -30,13 +51,4 @@
                 - bond0
                 require_interfaces:
                 - bond0
-              br_ctl:
-                address: ${_param:_esc}{_param:single_address}
-                enabled: true
-                netmask: 255.255.255.0
-                proto: static
-                type: bridge
-                use_interfaces:
-                - bond0.2416
-                require_interfaces:
-                - bond0.2416
+{%- set _ = params.update({'keepalived_vip_interface': 'br_ctl'}) %}
\ No newline at end of file
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_dvr_vlan_ctl_prv_floating"
similarity index 76%
rename from "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs"
rename to "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_dvr_vlan_ctl_prv_floating"
index e13b2ea..a4f891d 100644
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs"
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_dvr_vlan_ctl_prv_floating"
@@ -1,7 +1,17 @@
+{#- Tenant over VLAN. For gateway nodes and computes with dvr #}
+{#- Provides:                         #}
+{#-   br_ctl (OVS bridge) + control address #}
+{#-   br_prv (OVS bridge) #}
+{#-   br_floating (OVS bridge) #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:control_vlan           #}
 
               # {{ interfaces_role }}
               {%- for interface_name, interface in interfaces.items() %}
               {{ interface_name }}:
+                mtu: 9000
                 enabled: true
                 master: bond0  # ?
                 name: {{ interface_name }}
@@ -28,34 +38,28 @@
               br-floating:
                 enabled: true
                 type: ovs_bridge
-              br-prv:
-                enabled: true
-                type: ovs_bridge
               br_ctl:
                 address: ${_param:_esc}{_param:single_address}
                 bridge: br-floating
                 enabled: true
-                netmask: 255.255.255.0
-                ovs_options: tag=2416
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                ovs_options: tag=${_param:_esc}{_param:control_vlan}
                 proto: static
                 type: ovs_port
                 require_interfaces:
                 - br-floating
+              br-prv:
+                enabled: true
+                type: ovs_bridge
               floating-to-prv:
+                enabled: true
+                type: ovs_port
+                port_type: patch
                 bridge: br-floating
-                enabled: true
                 peer: prv-to-floating
-                port_type: patch
-                type: ovs_port
-                require_interfaces:
-                - br-prv
-                - br-floating
               prv-to-floating:
-                bridge: br-prv
                 enabled: true
-                peer: floating-to-prv
-                port_type: patch
                 type: ovs_port
-                require_interfaces:
-                - br-prv
-                - br-floating
+                port_type: patch
+                bridge: br-prv
+                peer: floating-to-prv
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_dvr_vxlan_ctl_mesh_floating"
similarity index 61%
copy from "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs"
copy to "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_dvr_vxlan_ctl_mesh_floating"
index e13b2ea..265aba8 100644
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs"
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_dvr_vxlan_ctl_mesh_floating"
@@ -1,7 +1,20 @@
+{#- Tenant over VXLAN. For gateway nodes and computes with dvr #}
+{#- Provides:                         #}
+{#-   br_ctl (OVS bridge) + control address #}
+{#-   br_mesh (OVS bridge) + tenant address #}
+{#-   br_floating (OVS bridge) #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:control_vlan           #}
+{#-   _param:tenant_address         #}
+{#-   _param:tenant_netmask         #}
+{#-   _param:tenant_vlan           #}
 
               # {{ interfaces_role }}
               {%- for interface_name, interface in interfaces.items() %}
               {{ interface_name }}:
+                mtu: 9000
                 enabled: true
                 master: bond0  # ?
                 name: {{ interface_name }}
@@ -28,34 +41,23 @@
               br-floating:
                 enabled: true
                 type: ovs_bridge
-              br-prv:
-                enabled: true
-                type: ovs_bridge
               br_ctl:
                 address: ${_param:_esc}{_param:single_address}
                 bridge: br-floating
                 enabled: true
-                netmask: 255.255.255.0
-                ovs_options: tag=2416
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                ovs_options: tag=${_param:_esc}{_param:control_vlan}
                 proto: static
                 type: ovs_port
                 require_interfaces:
                 - br-floating
-              floating-to-prv:
+              br-mesh:
+                enabled: true
+                type: ovs_port
                 bridge: br-floating
-                enabled: true
-                peer: prv-to-floating
-                port_type: patch
-                type: ovs_port
+                proto: static
+                ovs_options: tag=${_param:_esc}{_param:tenant_vlan}
+                address: ${_param:_esc}{_param:tenant_address}
+                netmask: ${_param:_esc}{_param:tenant_network_netmask}
                 require_interfaces:
-                - br-prv
-                - br-floating
-              prv-to-floating:
-                bridge: br-prv
-                enabled: true
-                peer: floating-to-prv
-                port_type: patch
-                type: ovs_port
-                require_interfaces:
-                - br-prv
                 - br-floating
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_nondvr_vlan_ctl_prv"
similarity index 62%
copy from "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs"
copy to "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_nondvr_vlan_ctl_prv"
index e13b2ea..53cdb09 100644
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs"
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_nondvr_vlan_ctl_prv"
@@ -1,7 +1,16 @@
+{#- Tenant over VLAN. For computes without dvr #}
+{#- Provides:     #}
+{#-   br_ctl (OVS bridge) + control address #}
+{#-   br_prv (OVS bridge) #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:control_vlan           #}
 
               # {{ interfaces_role }}
               {%- for interface_name, interface in interfaces.items() %}
               {{ interface_name }}:
+                mtu: 9000
                 enabled: true
                 master: bond0  # ?
                 name: {{ interface_name }}
@@ -12,7 +21,7 @@
               bond0:
                 enabled: true
                 mode: active-backup
-                ovs_bridge: br-floating
+                ovs_bridge: br-prv
                 ovs_type: OVSPort
                 proto: manual
                 slaves: {{ ' '.join(interfaces.keys()) }}
@@ -25,37 +34,16 @@
                 {%- for interface_name in interfaces.keys() %}
                 - {{ interface_name }}
                 {%- endfor %}
-              br-floating:
-                enabled: true
-                type: ovs_bridge
               br-prv:
                 enabled: true
                 type: ovs_bridge
               br_ctl:
                 address: ${_param:_esc}{_param:single_address}
-                bridge: br-floating
+                bridge: br-prv
                 enabled: true
-                netmask: 255.255.255.0
-                ovs_options: tag=2416
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                ovs_options: tag=${_param:_esc}{_param:control_vlan}
                 proto: static
                 type: ovs_port
                 require_interfaces:
-                - br-floating
-              floating-to-prv:
-                bridge: br-floating
-                enabled: true
-                peer: prv-to-floating
-                port_type: patch
-                type: ovs_port
-                require_interfaces:
                 - br-prv
-                - br-floating
-              prv-to-floating:
-                bridge: br-prv
-                enabled: true
-                peer: floating-to-prv
-                port_type: patch
-                type: ovs_port
-                require_interfaces:
-                - br-prv
-                - br-floating
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_nondvr_vxlan_ctl_mesh" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_nondvr_vxlan_ctl_mesh"
new file mode 100644
index 0000000..42dbfca
--- /dev/null
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_nondvr_vxlan_ctl_mesh"
@@ -0,0 +1,76 @@
+{#- Tenant over VXLAN. For computes without dvr #}
+{#- Provides:     #}
+{#-   br_ctl (linux bridge) + control address #}
+{#-   br_mesh (linux bridge) + tenant address #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:control_vlan           #}
+{#-   _param:tenant_address         #}
+{#-   _param:tenant_netmask         #}
+{#-   _param:tenant_vlan           #}
+
+              # {{ interfaces_role }}
+              {%- for interface_name, interface in interfaces.items() %}
+              {{ interface_name }}:
+                mtu: 9000
+                enabled: true
+                name: {{ interface_name }}
+                proto: manual
+                type: eth
+                ipflush_onchange: true
+              {%- endfor %}
+              bond0:
+                enabled: true
+                mode: active-backup
+                proto: manual
+                slaves: {{ ' '.join(interfaces.keys()) }}
+                type: bond
+                use_interfaces:
+                {%- for interface_name in interfaces.keys() %}
+                - {{ interface_name }}
+                {%- endfor %}
+                require_interfaces:
+                {%- for interface_name in interfaces.keys() %}
+                - {{ interface_name }}
+                {%- endfor %}
+
+              br_ctl:
+                address: ${_param:_esc}{_param:single_address}
+                enabled: true
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                proto: static
+                type: bridge
+                use_interfaces:
+                - bond0.${_param:_esc}{_param:control_vlan}
+                require_interfaces:
+                - bond0.${_param:_esc}{_param:control_vlan}
+              bond0.control_vlan:
+                name: bond0.${_param:_esc}{_param:control_vlan}
+                enabled: true
+                proto: manual
+                type: vlan
+                use_interfaces:
+                - bond0
+                require_interfaces:
+                - bond0
+
+              br_mesh:
+                address: ${_param:_esc}{_param:tenant_address}
+                netmask: ${_param:_esc}{_param:tenant_network_netmask}
+                enabled: true
+                proto: static
+                type: bridge
+                use_interfaces:
+                - bond0.${_param:_esc}{_param:tenant_vlan}
+                require_interfaces:
+                - bond0.${_param:_esc}{_param:tenant_vlan}
+              bond0.tenant_vlan:
+                name: bond0.${_param:_esc}{_param:tenant_vlan}
+                enabled: true
+                proto: manual
+                type: vlan
+                use_interfaces:
+                - bond0
+                require_interfaces:
+                - bond0
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ovs_vlan_ctl_prv"
similarity index 62%
copy from "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs"
copy to "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ovs_vlan_ctl_prv"
index e13b2ea..3cba8de 100644
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_floating_bond0_ovs"
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ovs_vlan_ctl_prv"
@@ -1,7 +1,16 @@
+{#- Tenant over VLAN. For gateway and compute nodes #}
+{#- Provides:                         #}
+{#-   br_ctl (OVS bridge) + control address #}
+{#-   br_prv (OVS bridge) #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:control_vlan           #}
 
               # {{ interfaces_role }}
               {%- for interface_name, interface in interfaces.items() %}
               {{ interface_name }}:
+                mtu: 9000
                 enabled: true
                 master: bond0  # ?
                 name: {{ interface_name }}
@@ -12,7 +21,7 @@
               bond0:
                 enabled: true
                 mode: active-backup
-                ovs_bridge: br-floating
+                ovs_bridge: br-prv
                 ovs_type: OVSPort
                 proto: manual
                 slaves: {{ ' '.join(interfaces.keys()) }}
@@ -25,37 +34,16 @@
                 {%- for interface_name in interfaces.keys() %}
                 - {{ interface_name }}
                 {%- endfor %}
-              br-floating:
-                enabled: true
-                type: ovs_bridge
               br-prv:
                 enabled: true
                 type: ovs_bridge
               br_ctl:
                 address: ${_param:_esc}{_param:single_address}
-                bridge: br-floating
+                bridge: br-prv
                 enabled: true
-                netmask: 255.255.255.0
-                ovs_options: tag=2416
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                ovs_options: tag=${_param:_esc}{_param:control_vlan}
                 proto: static
                 type: ovs_port
                 require_interfaces:
-                - br-floating
-              floating-to-prv:
-                bridge: br-floating
-                enabled: true
-                peer: prv-to-floating
-                port_type: patch
-                type: ovs_port
-                require_interfaces:
                 - br-prv
-                - br-floating
-              prv-to-floating:
-                bridge: br-prv
-                enabled: true
-                peer: floating-to-prv
-                port_type: patch
-                type: ovs_port
-                require_interfaces:
-                - br-prv
-                - br-floating
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ovs_vxlan_ctl_mesh" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ovs_vxlan_ctl_mesh"
new file mode 100644
index 0000000..2aea73d
--- /dev/null
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond0_ab_ovs_vxlan_ctl_mesh"
@@ -0,0 +1,62 @@
+{#- Tenant over VXLAN. For gateway and compute nodes #}
+{#- Provides:                         #}
+{#-   br_ctl (OVS bridge) + control address #}
+{#-   br_mesh (OVS bridge) + tenant address #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:control_vlan           #}
+{#-   _param:tenant_address         #}
+{#-   _param:tenant_netmask         #}
+{#-   _param:tenant_vlan           #}
+
+              # {{ interfaces_role }}
+              {%- for interface_name, interface in interfaces.items() %}
+              {{ interface_name }}:
+                mtu: 9000
+                enabled: true
+                master: bond0  # ?
+                name: {{ interface_name }}
+                proto: manual
+                type: slave  # ?
+                ipflush_onchange: true
+              {%- endfor %}
+              bond0:
+                enabled: true
+                mode: active-backup
+                ovs_bridge: br-ten
+                ovs_type: OVSPort
+                proto: manual
+                slaves: {{ ' '.join(interfaces.keys()) }}
+                type: bond
+                use_interfaces:
+                {%- for interface_name in interfaces.keys() %}
+                - {{ interface_name }}
+                {%- endfor %}
+                require_interfaces:
+                {%- for interface_name in interfaces.keys() %}
+                - {{ interface_name }}
+                {%- endfor %}
+              br-ten:
+                enabled: true
+                type: ovs_bridge
+              br_ctl:
+                address: ${_param:_esc}{_param:single_address}
+                bridge: br-ten
+                enabled: true
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                ovs_options: tag=${_param:_esc}{_param:control_vlan}
+                proto: static
+                type: ovs_port
+                require_interfaces:
+                - br-ten
+              br-mesh:
+                enabled: true
+                type: ovs_port
+                bridge: br-ten
+                proto: static
+                ovs_options: tag=${_param:_esc}{_param:tenant_vlan}
+                address: ${_param:_esc}{_param:tenant_address}
+                netmask: ${_param:_esc}{_param:tenant_network_netmask}
+                require_interfaces:
+                - br-ten
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_bond0" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond1_ab_ovs_floating"
similarity index 61%
rename from "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_bond0"
rename to "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond1_ab_ovs_floating"
index e47c2b2..9df5f46 100644
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_bond0"
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond1_ab_ovs_floating"
@@ -1,16 +1,27 @@
+{#- Floating on a separated bond interfaces. For gateway nodes and computes with dvr #}
+{#- Provides:                         #}
+{#-   br_floating (OVS bridge) #}
+{#- Requirements:                     #}
+{#-   _param:?addr         #}
+{#-   _param:?mask         #}
+{#-   _param:?vlan           #}
 
               # {{ interfaces_role }}
               {%- for interface_name, interface in interfaces.items() %}
               {{ interface_name }}:
+                mtu: 9000
                 enabled: true
+                master: bond1  # ?
                 name: {{ interface_name }}
                 proto: manual
-                type: eth
+                type: slave  # ?
                 ipflush_onchange: true
               {%- endfor %}
-              bond0:
+              bond1:
                 enabled: true
                 mode: active-backup
+                ovs_bridge: br-floating
+                ovs_type: OVSPort
                 proto: manual
                 slaves: {{ ' '.join(interfaces.keys()) }}
                 type: bond
@@ -22,13 +33,6 @@
                 {%- for interface_name in interfaces.keys() %}
                 - {{ interface_name }}
                 {%- endfor %}
-              br_ctl:
-                address: ${_param:_esc}{_param:single_address}
+              br-floating:
                 enabled: true
-                netmask: 255.255.255.0
-                proto: static
-                type: bridge
-                use_interfaces:
-                - bond0
-                require_interfaces:
-                - bond0
+                type: ovs_bridge
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/private_dpdk_ovs" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond2_dpdk_prv"
similarity index 68%
rename from "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/private_dpdk_ovs"
rename to "tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond2_dpdk_prv"
index de0e46d..39bc013 100644
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/private_dpdk_ovs"
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/bond2_dpdk_prv"
@@ -1,8 +1,13 @@
+{#- Provides:                         #}
+{#-   br-prv (OVS bridge) #}
+{#- Requirements:                     #}
+{#-   _param:tenant_address         #}
+{#-   _param:tenant_netmask         #}
 
               # {{ interfaces_role }}
               {%- for interface_name, interface in interfaces.items() %}
               {{ interface_name }}:
-                bond: dpdkbond1
+                bond: bonddpdk2
                 driver: igb_uio
                 enabled: true
                 n_rxq: 2
@@ -10,7 +15,7 @@
                 pci: '{{ interface['dpdk_pci'] }}'
                 type: dpdk_ovs_port
               {%- endfor %}
-              dpdkbond1:
+              bonddpdk2:
                 bridge: br-prv
                 enabled: true
                 mode: active-backup
@@ -18,5 +23,5 @@
               br-prv:
                 address: ${_param:_esc}{_param:tenant_address}
                 enabled: true
-                netmask: 255.255.255.0
+                netmask: ${_param:_esc}{_param:tenant_netmask}
                 type: dpdk_ovs_bridge
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_vcp_single" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_vcp_single"
deleted file mode 100644
index 39c0808..0000000
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/control_vcp_single"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-              # {{ interfaces_role }}
-              {%- set interface_name = interfaces.keys()[0] %}
-              {{ interface_name }}: ${_param:_esc}{_param:linux_single_interface}
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/management_single" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/management_single"
deleted file mode 100644
index f09890f..0000000
--- "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/management_single"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-              # {{ interfaces_role }}
-              {%- set interface_name = interfaces.keys()[0] %}
-              {{ interface_name }}:
-                enabled: true
-                name: {{ interface_name }}
-                proto: manual
-                type: eth
-                ipflush_onchange: true
-              br_mgm:
-                address: ${_param:_esc}{_param:deploy_address}
-                enabled: true
-                gateway: 172.16.49.1
-                name_servers:
-                - 8.8.8.8
-                - 8.8.4.4
-                netmask: 255.255.255.192
-                proto: static
-                type: bridge
-                use_interfaces:
-                - {{ interface_name }}
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/single_ctl" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/single_ctl"
new file mode 100644
index 0000000..a289c99
--- /dev/null
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/single_ctl"
@@ -0,0 +1,32 @@
+{#- Control network. For control plane nodes #}
+{#- Provides:                         #}
+{#-   br_ctl (linux bridge) + address #}
+{#-   _param:keepalived_vip_interface = 'br_ctl' #}
+{#- Requires:                         #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:dns_server01         #}
+{#-   _param:dns_server02         #}
+
+              # {{ interfaces_role }}
+              {%- set interface_name = interfaces.keys()[0] %}
+              {{ interface_name }}:
+                enabled: true
+                name: {{ interface_name }}
+                proto: manual
+                type: eth
+                ipflush_onchange: true
+              br_ctl:
+                address: ${_param:_esc}{_param:single_address}
+                enabled: true
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                proto: static
+                type: bridge
+                name_servers:
+                - ${_param:_esc}{_param:dns_server01}
+                - ${_param:_esc}{_param:dns_server02}
+                use_interfaces:
+                - {{ interface_name }}
+                require_interfaces:
+                - {{ interface_name }}
+{%- set _ = params.update({'keepalived_vip_interface': 'br_ctl'}) %}
diff --git "a/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/single_mgm" "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/single_mgm"
new file mode 100644
index 0000000..a0de958
--- /dev/null
+++ "b/tcp_tests/environment/environment_template/\173\043 interfaces \043\175/single_mgm"
@@ -0,0 +1,30 @@
+{#- Management (admin) network. For nodes where deploy address must be configured as static (at least cfg*) #}
+{#- Provides:                         #}
+{#-   br_mgm (linux bridge) + address #}
+{#- Requires:                         #}
+{#-   _param:deploy_address         #}
+{#-   _param:deploy_network_netmask         #}
+{#-   _param:deploy_network_gateway         #}
+{#-   _param:dns_server01         #}
+{#-   _param:dns_server02         #}
+
+              # {{ interfaces_role }}
+              {%- set interface_name = interfaces.keys()[0] %}
+              {{ interface_name }}:
+                enabled: true
+                name: {{ interface_name }}
+                proto: manual
+                type: eth
+                ipflush_onchange: true
+              br_mgm:
+                address: ${_param:_esc}{_param:deploy_address}
+                netmask: ${_param:_esc}{_param:deploy_network_netmask}  #lab03: 255.255.255.192
+                gateway: ${_param:_esc}{_param:deploy_network_gateway}  #lab03: 172.16.49.1
+                enabled: true
+                name_servers:
+                - ${_param:_esc}{_param:dns_server01}
+                - ${_param:_esc}{_param:dns_server02}
+                proto: static
+                type: bridge
+                use_interfaces:
+                - {{ interface_name }}
diff --git a/tcp_tests/templates/cookied-mcp-ocata-dvr-vxlan/salt.yaml b/tcp_tests/templates/cookied-mcp-ocata-dvr-vxlan/salt.yaml
index 1b34002..478e9dd 100644
--- a/tcp_tests/templates/cookied-mcp-ocata-dvr-vxlan/salt.yaml
+++ b/tcp_tests/templates/cookied-mcp-ocata-dvr-vxlan/salt.yaml
@@ -25,12 +25,17 @@
     mkdir -p /srv/salt/reclass/classes/service/
     mkdir -p /srv/salt/reclass/nodes/
 
-    sed -i 's/cluster_name:.*/cluster_name: {{ LAB_CONFIG_NAME }}/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
-    sed -i 's/cluster_domain:.*/cluster_domain: {{ DOMAIN_NAME }}/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
+    {%- set CONTEXT_PATH = '/tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml' %}
+
+    # Override some context parameters
+    sed -i 's/cluster_name:.*/cluster_name: {{ LAB_CONFIG_NAME }}/g' {{ CONTEXT_PATH }}
+    sed -i 's/cluster_domain:.*/cluster_domain: {{ DOMAIN_NAME }}/g' {{ CONTEXT_PATH }}
+    sed -i 's/control_vlan:.*/control_vlan: \"2416\"/g' {{ CONTEXT_PATH }}
+    sed -i 's/tenant_vlan:.*/tenant_vlan: \"2417\"/g' {{ CONTEXT_PATH }}
 
     # Temporary workaround (with hardcoded address .90 -> .15) of bug https://mirantis.jira.com/browse/PROD-14377
-    sed -i 's/salt_master_address:.*/salt_master_address: {{ SHARED.IPV4_NET_CONTROL_PREFIX }}.15/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
-    sed -i 's/salt_master_management_address:.*/salt_master_management_address: {{ SHARED.IPV4_NET_ADMIN_PREFIX }}.15/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
+    sed -i 's/salt_master_address:.*/salt_master_address: {{ SHARED.IPV4_NET_CONTROL_PREFIX }}.15/g' {{ CONTEXT_PATH }}
+    sed -i 's/salt_master_management_address:.*/salt_master_management_address: {{ SHARED.IPV4_NET_ADMIN_PREFIX }}.15/g' {{ CONTEXT_PATH }}
 
     # Replace firstly to an intermediate value to avoid intersection between
     # already replaced and replacing networks.
@@ -38,19 +43,19 @@
     # 192.168.10 -> 10.16.0 (generated network for admin)
     # 10.16.0 -> <external network>
     # So let's replace constant networks to the keywords, and then keywords to the desired networks.
-    sed -i 's/10\.167\.5/==IPV4_NET_ADMIN_PREFIX==/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
-    sed -i 's/10\.167\.4/==IPV4_NET_CONTROL_PREFIX==/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
-    sed -i 's/10\.167\.6/==IPV4_NET_TENANT_PREFIX==/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
-    sed -i 's/172\.17\.16\./==IPV4_NET_EXTERNAL_PREFIX==/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
+    sed -i 's/10\.167\.5/==IPV4_NET_ADMIN_PREFIX==/g' {{ CONTEXT_PATH }}
+    sed -i 's/10\.167\.4/==IPV4_NET_CONTROL_PREFIX==/g' {{ CONTEXT_PATH }}
+    sed -i 's/10\.167\.6/==IPV4_NET_TENANT_PREFIX==/g' {{ CONTEXT_PATH }}
+    sed -i 's/172\.17\.16\./==IPV4_NET_EXTERNAL_PREFIX==/g' {{ CONTEXT_PATH }}
 
-    sed -i 's/==IPV4_NET_ADMIN_PREFIX==/{{ SHARED.IPV4_NET_ADMIN_PREFIX }}/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
-    sed -i 's/==IPV4_NET_CONTROL_PREFIX==/{{ SHARED.IPV4_NET_CONTROL_PREFIX }}/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
-    sed -i 's/==IPV4_NET_TENANT_PREFIX==/{{ SHARED.IPV4_NET_TENANT_PREFIX }}/g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
-    sed -i 's/==IPV4_NET_EXTERNAL_PREFIX==/{{ SHARED.IPV4_NET_EXTERNAL_PREFIX }}./g' /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml
+    sed -i 's/==IPV4_NET_ADMIN_PREFIX==/{{ SHARED.IPV4_NET_ADMIN_PREFIX }}/g' {{ CONTEXT_PATH }}
+    sed -i 's/==IPV4_NET_CONTROL_PREFIX==/{{ SHARED.IPV4_NET_CONTROL_PREFIX }}/g' {{ CONTEXT_PATH }}
+    sed -i 's/==IPV4_NET_TENANT_PREFIX==/{{ SHARED.IPV4_NET_TENANT_PREFIX }}/g' {{ CONTEXT_PATH }}
+    sed -i 's/==IPV4_NET_EXTERNAL_PREFIX==/{{ SHARED.IPV4_NET_EXTERNAL_PREFIX }}./g' {{ CONTEXT_PATH }}
 
     for i in $(ls /tmp/cookiecutter-templates/cluster_product/); do
       cookiecutter /tmp/cookiecutter-templates/cluster_product/$i \
-        --config-file /tmp/cookiecutter-templates/contexts/openstack_ovs_dvr_vxlan.yml \
+        --config-file {{ CONTEXT_PATH }} \
         --output-dir /srv/salt/reclass/classes/cluster/ \
         --no-input -f;
     done
diff --git a/tcp_tests/templates/shared-salt.yaml b/tcp_tests/templates/shared-salt.yaml
index 850df92..bc9a14e 100644
--- a/tcp_tests/templates/shared-salt.yaml
+++ b/tcp_tests/templates/shared-salt.yaml
@@ -436,7 +436,7 @@
   cmd: salt -C "I@linux:network:interface:*:type:bond" cmd.run 'modprobe bonding'
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 5}
-  skip_fail: false
+  skip_fail: true
 
 - description: '*Workaround* install bridge-utils before running linux formula'
   # The formula removes default route and then tries to install the package, fails.