+++ /dev/null
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Tue, 11 Jul 2017 19:06:47 +0200
-Subject: [PATCH] lib.sh: AArch64: virt-install: Use virtio-net-pci
-
-AArch64 virt tools (i.e. libvirt) default to "virtio-mmio", instead of
-"virtio-net-pci", at least before libvirt 3.x (see [1]).
-
-Without PCI bus info, we can't really enforce a specific order for
-the guest ethernet devices.
-
-This leads to a mismatch between cloud-init, who expects "pxe"
-network to reside on "eth0", while in fact it ends up on "eth3".
-As a consequence, we have no connectivity to the guest, as DHCP
-is only configured by cloud-init on "eth0", and also the boot
-sequence waits ~5 minutes for "eth0" to come up, before eventually
-giving up.
-
-Moreover, predictable network interface naming is out of the question
-with virtio-mmio, as there is no bus information to rely on.
-
-Therefore we will enforce "virtio-net-pci" on AArch64, instead of
-the default "virtio" (which translates into "virtio-mmio" currently).
-
-FIXME: Apparently, both legacy and modern virtio (0.9 and 1.0) are
-active, which leads to triggering bug[2].
-For now, throw some sed magic at it and disable legacy mode.
-
-[1] https://www.redhat.com/archives/libvir-list/2016-August/msg00931.html
-[2] https://bugzilla.redhat.com/show_bug.cgi?id=1370005
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- mcp/scripts/lib.sh | 20 ++++++++++++++++----
- 1 file changed, 16 insertions(+), 4 deletions(-)
-
-diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
-index 862fdcc..7c4c46f 100644
---- a/mcp/scripts/lib.sh
-+++ b/mcp/scripts/lib.sh
-@@ -58,24 +58,36 @@ create_vms() {
-
-   # AArch64: prepare arch specific arguments
-   local virt_extra_args=""
-+  local virt_pxe_net_model="virtio"
-+  local virt_net_model="${virt_pxe_net_model}"
-   if [ "$(uname -i)" = "aarch64" ]; then
-     # No Cirrus VGA on AArch64, use vga std
-     virt_extra_args="$virt_extra_args --video=vga"
-+    # AArch64 networking defaults to virtio-mmio before libvirt 3.x
-+    virt_net_model="virtio-net-pci"
-   fi
-
-   # create vms with specified options
-   for node in "${vnodes[@]}"; do
-     virt-install --name ${node} --ram ${vnodes_ram[$node]} --vcpus ${vnodes_vcpus[$node]} --cpu host --accelerate \
--    --network network:pxe,model=virtio \
--    --network network:mgmt,model=virtio \
--    --network network:internal,model=virtio \
--    --network network:public,model=virtio \
-+    --network network:pxe,model=${virt_pxe_net_model} \
-+    --network network:mgmt,model=${virt_net_model} \
-+    --network network:internal,model=${virt_net_model} \
-+    --network network:public,model=${virt_net_model} \
-     --disk path=$(pwd)/images/mcp_${node}.qcow2,format=qcow2,bus=virtio,cache=none,io=native \
-     --os-type linux --os-variant none \
-     --boot hd --vnc --console pty --autostart --noreboot \
-     --disk path=$(pwd)/images/mcp_${node}.iso,device=cdrom \
-     --noautoconsole \
-     ${virt_extra_args}
-+
-+    # NOTE(armband): Disable legacy virtio (0.9) in favor of modern virtio (1.0)
-+    # http://blog.vmsplice.net/2011/04/how-to-pass-qemu-command-line-options.html
-+    #  <qemu:commandline>
-+    #   <qemu:arg value='-global'/>
-+    #   <qemu:arg value='virtio-pci.disable-legacy=on'/>
-+    # </qemu:commandline>
-+    EDITOR="sed -i -e \"s|\(<domain.*\)>|\1 xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>|\" -e \"s|\(</domain>\)|<qemu:commandline><qemu:arg value='-global'/><qemu:arg value='virtio-pci.disable-legacy=on'/></qemu:commandline>\1|\"" virsh edit ${node}
-   done
- }
-
 
 From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Sun, 16 Jul 2017 03:58:58 +0200
-Subject: [PATCH] classes: virtual: AArch64: virtio-pci-net sync
+Date: Tue, 25 Jul 2017 02:53:16 +0200
+Subject: [PATCH] classes: virtual: AArch64: virtio NIC names sync
 
 grep -e "ens[[:digit:]]" -R . -l | \
   xargs sed -i \
-    -e 's/ens3/eth0/g' \
-    -e 's/ens4/enp2s1/g' \
-    -e 's/ens5/enp2s2/g' \
-    -e 's/ens6/enp2s3/g'
+    -e 's/ens3/enp1s0/g' \
+    -e 's/ens4/enp2s2/g' \
+    -e 's/ens5/enp3s0/g' \
+    -e 's/ens6/enp4s0/g'
 
 Since AArch64 will be using virtio-net-pci NIC model for guests,
 predictable interface naming yields a slightly different scheme.
 
 Update all configuration to reflect this.
 
-NOTE: PXE interfaces still uses "virtio-mmio", which translates
-into "eth0".
+NOTE: Above configuration is expected with libvirt 3.x, which puts
+each NIC on a separate PCIe bus (which also imposes virtio modern
+is used).
 
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
  13 files changed, 36 insertions(+), 36 deletions(-)
 
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml
-index 328d6df..99e6152 100644
+index 328d6df..57c6cec 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml
 @@ -27,7 +27,7 @@ parameters:
      network:
        interface:
 -        ens4:
-+        enp2s1:
++        enp2s0:
            enabled: true
            type: eth
            proto: static
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/opendaylight/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/opendaylight/control.yml
-index 6c6640a..c775090 100644
+index 6c6640a..ec02e94 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/opendaylight/control.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/opendaylight/control.yml
 @@ -11,7 +11,7 @@ parameters:
      network:
        interface:
 -        ens4:
-+        enp2s1:
++        enp2s0:
            enabled: true
            type: eth
            proto: static
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/compute.yml
-index 97eda6c..98d2ea2 100644
+index 97eda6c..3f18ccd 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/compute.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/compute.yml
 @@ -10,9 +10,9 @@ classes:
 -    primary_interface: ens4
 -    tenant_interface: ens5
 -    external_interface: ens6
-+    primary_interface: enp2s1
-+    tenant_interface: enp2s2
-+    external_interface: enp2s3
++    primary_interface: enp2s0
++    tenant_interface: enp3s0
++    external_interface: enp4s0
      interface_mtu: 9000
      linux_system_codename: xenial
      loopback_device_size: 10
          dhcp_int:
            enabled: true
 -          name: ens3
-+          name: eth0
++          name: enp1s0
            proto: dhcp
            type: eth
            mtu: ${_param:interface_mtu}
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/control.yml
-index 17c22c5..5bd4a95 100644
+index 17c22c5..ca3a812 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/control.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/control.yml
 @@ -40,13 +40,13 @@ parameters:
      network:
        interface:
 -        ens4:
-+        enp2s1:
++        enp2s0:
            enabled: true
            type: eth
            proto: static
            address: ${_param:single_address}
            netmask: 255.255.255.0
 -        ens6:
-+        enp2s3:
++        enp4s0:
            enabled: true
            type: eth
            proto: static
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml
-index 4ea51f3..b5709e7 100644
+index 4ea51f3..ee17dbd 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml
 @@ -6,9 +6,9 @@ classes:
 -    primary_interface: ens4
 -    tenant_interface: ens5
 -    external_interface: ens6
-+    primary_interface: enp2s1
-+    tenant_interface: enp2s2
-+    external_interface: enp2s3
++    primary_interface: enp2s0
++    tenant_interface: enp3s0
++    external_interface: enp4s0
      interface_mtu: 9000
      linux_system_codename: xenial
      neutron_agents:
          dhcp_int:
            enabled: true
 -          name: ens3
-+          name: eth0
++          name: enp1s0
            proto: dhcp
            type: eth
            mtu: ${_param:interface_mtu}
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml
-index 864c71d..ae06d21 100644
+index 864c71d..aec6cde 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml
 @@ -26,7 +26,7 @@ parameters:
      network:
        interface:
 -        ens4:
-+        enp2s1:
++        enp2s0:
            enabled: true
            type: eth
            proto: static
              tenant_address: 10.1.0.105
              external_address: 10.16.0.105
 -            dpdk0_name: ens5
-+            dpdk0_name: enp2s2
++            dpdk0_name: enp3s0
              dpdk0_pci: '"0000:00:05.0"'
          openstack_compute_node02:
            params:
              tenant_address: 10.1.0.106
              external_address: 10.16.0.106
 -            dpdk0_name: ens5
-+            dpdk0_name: enp2s2
++            dpdk0_name: enp3s0
              dpdk0_pci: '"0000:00:05.0"'
          openstack_gateway_node01:
            params:
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/compute.yml
-index c23ca7f..aeb6ba1 100644
+index c23ca7f..6d2f724 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/compute.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/compute.yml
 @@ -12,9 +12,9 @@ classes:
 -    primary_interface: ens4
 -    tenant_interface: ens5
 -    external_interface: ens6
-+    primary_interface: enp2s1
-+    tenant_interface: enp2s2
-+    external_interface: enp2s3
++    primary_interface: enp2s0
++    tenant_interface: enp3s0
++    external_interface: enp4s0
      interface_mtu: 9000
      linux_system_codename: xenial
      loopback_device_size: 10
          dhcp_int:
            enabled: true
 -          name: ens3
-+          name: eth0
++          name: enp1s0
            proto: dhcp
            type: eth
            mtu: ${_param:interface_mtu}
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/control.yml
-index b85f085..0c4b5b9 100644
+index b85f085..20eb8f5 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/control.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/control.yml
 @@ -40,13 +40,13 @@ parameters:
      network:
        interface:
 -        ens4:
-+        enp2s1:
++        enp2s0:
            enabled: true
            type: eth
            proto: static
            address: ${_param:single_address}
            netmask: 255.255.255.0
 -        ens6:
-+        enp2s3:
++        enp4s0:
            enabled: true
            type: eth
            proto: static
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/gateway.yml
-index e102c10..e1800de 100644
+index e102c10..f153a19 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/gateway.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/gateway.yml
 @@ -6,9 +6,9 @@ classes:
 -    primary_interface: ens4
 -    tenant_interface: ens5
 -    external_interface: ens6
-+    primary_interface: enp2s1
-+    tenant_interface: enp2s2
-+    external_interface: enp2s3
++    primary_interface: enp2s0
++    tenant_interface: enp3s0
++    external_interface: enp4s0
      interface_mtu: 9000
      linux_system_codename: xenial
    neutron:
          dhcp_int:
            enabled: true
 -          name: ens3
-+          name: eth0
++          name: enp1s0
            proto: dhcp
            type: eth
            mtu: ${_param:interface_mtu}
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml
-index 97730b1..671f2f9 100644
+index 97730b1..8cb0992 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml
 @@ -26,7 +26,7 @@ parameters:
      network:
        interface:
 -        ens4:
-+        enp2s1:
++        enp2s0:
            enabled: true
            type: eth
            proto: static
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/compute.yml
-index a86a7c6..78acfba 100644
+index a86a7c6..0469fa0 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/compute.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/compute.yml
 @@ -10,9 +10,9 @@ classes:
 -    primary_interface: ens4
 -    tenant_interface: ens5
 -    external_interface: ens6
-+    primary_interface: enp2s1
-+    tenant_interface: enp2s2
-+    external_interface: enp2s3
++    primary_interface: enp2s0
++    tenant_interface: enp3s0
++    external_interface: enp4s0
      interface_mtu: 9000
      linux_system_codename: xenial
      loopback_device_size: 10
          dhcp_int:
            enabled: true
 -          name: ens3
-+          name: eth0
++          name: enp1s0
            proto: dhcp
            type: eth
            mtu: ${_param:interface_mtu}
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
-index ae103cd..e2ecc42 100644
+index ae103cd..350b618 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
 @@ -40,13 +40,13 @@ parameters:
      network:
        interface:
 -        ens4:
-+        enp2s1:
++        enp2s0:
            enabled: true
            type: eth
            proto: static
            address: ${_param:single_address}
            netmask: 255.255.255.0
 -        ens6:
-+        enp2s3:
++        enp4s0:
            enabled: true
            type: eth
            proto: static
 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/gateway.yml
-index 9257d86..0a2a622 100644
+index 9257d86..26b0e4c 100644
 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/gateway.yml
 +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/gateway.yml
 @@ -6,9 +6,9 @@ classes:
 -    primary_interface: ens4
 -    tenant_interface: ens5
 -    external_interface: ens6
-+    primary_interface: enp2s1
-+    tenant_interface: enp2s2
-+    external_interface: enp2s3
++    primary_interface: enp2s0
++    tenant_interface: enp3s0
++    external_interface: enp4s0
      interface_mtu: 9000
      linux_system_codename: xenial
    neutron:
          dhcp_int:
            enabled: true
 -          name: ens3
-+          name: eth0
++          name: enp1s0
            proto: dhcp
            type: eth
            mtu: ${_param:interface_mtu}