From 2bd6a0ed390285ec8f17cc8c71a9147485ca860b Mon Sep 17 00:00:00 2001 From: Michael Polenchuk Date: Fri, 26 Jan 2018 17:52:31 +0400 Subject: [ovs/dpdk] Configure vxlan for baremetal scenario * switch ovs/dpdk scenario from vlan to vxlan mode * force br-ex interface to mitigate race with incorrect state * remove dpdk packages list (already in upstream) Change-Id: Ib827cef2d67879fd2a86d286ca2118b22493274d Signed-off-by: Michael Polenchuk --- mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml | 1 + mcp/config/states/networking_gw | 12 ++++++ .../0013-dpdk-Support-ovs-bridge-tagging.patch | 30 ++++++++++++++ mcp/patches/patches.list | 1 + .../openstack/compute.yml | 42 ------------------- .../openstack/compute.yml.j2 | 47 ++++++++++++++++++++++ .../openstack/init.yml | 2 +- .../openstack/compute.yml | 5 --- 8 files changed, 92 insertions(+), 48 deletions(-) create mode 100755 mcp/config/states/networking_gw create mode 100644 mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch delete mode 100644 mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml create mode 100644 mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2 diff --git a/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml b/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml index b475387bd..eec97eb96 100644 --- a/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml +++ b/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml @@ -15,6 +15,7 @@ cluster: - dpdk - openstack_ha - networks + - networking_gw virtual: nodes: - cfg01 diff --git a/mcp/config/states/networking_gw b/mcp/config/states/networking_gw new file mode 100755 index 000000000..ea7c87b01 --- /dev/null +++ b/mcp/config/states/networking_gw @@ -0,0 +1,12 @@ +#!/bin/bash -e +############################################################################## +# Copyright (c) 2018 Mirantis Inc., Enea AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x + +salt -I 'neutron:gateway' cmd.run 'ifup --force --ignore-errors br-ex' diff --git a/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch b/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch new file mode 100644 index 000000000..f73931ea8 --- /dev/null +++ b/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch @@ -0,0 +1,30 @@ +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +: Copyright (c) 2018 Mirantis Inc., Enea AB and others. +: +: All rights reserved. This program and the accompanying materials +: are made available under the terms of the Apache License, Version 2.0 +: which accompanies this distribution, and is available at +: http://www.apache.org/licenses/LICENSE-2.0 +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +From: Michael Polenchuk +Date: Mon, 22 Jan 2018 15:22:47 +0400 +Subject: [PATCH] [dpdk] Support ovs bridge tagging + +Bring in "tag" option for dpdk/ovs bridges +to support vlan-tagged vxlan mode. + +Change-Id: I7f1f88233694f2c8b968a6cf55584f32879ec042 + +diff --git a/linux/network/dpdk.sls b/linux/network/dpdk.sls +index 1ac9e25..05fe05f 100644 +--- a/linux/network/dpdk.sls ++++ b/linux/network/dpdk.sls +@@ -110,7 +110,7 @@ linux_network_dpdk_bond_mode_{{ interface_name }}: + + linux_network_dpdk_bridge_interface_{{ interface_name }}: + cmd.run: +- - name: "ovs-vsctl add-br {{ interface_name }} -- set bridge {{ interface_name }} datapath_type=netdev" ++ - name: "ovs-vsctl add-br {{ interface_name }} -- set bridge {{ interface_name }} datapath_type=netdev{% if interface.tag is defined %} -- set port {{ interface_name }} tag={{ interface.tag }}{% endif %}" + - unless: "ovs-vsctl show | grep {{ interface_name }}" + + {# OVS dpdk needs ip address for vxlan termination on bridge br-prv #} diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list index 1b3bfeab0..34d913ab2 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -17,3 +17,4 @@ /usr/share/salt-formulas/env: 0010-maas-region-allow-timeout-override.patch /usr/share/salt-formulas/env: 0011-system.repo-Debian-Add-keyserver-proxy-support.patch /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch +/usr/share/salt-formulas/env: 0013-dpdk-Support-ovs-bridge-tagging.patch diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml deleted file mode 100644 index cfe92020d..000000000 --- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml +++ /dev/null @@ -1,42 +0,0 @@ -############################################################################## -# Copyright (c) 2017 Mirantis Inc., Enea AB and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## ---- -classes: - - cluster.baremetal-mcp-pike-common-ha.openstack_compute - - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra - - system.neutron.compute.nfv.dpdk -parameters: - neutron: - gateway: - dpdk: 'True' - vhost_socket_dir: ${_param:compute_ovs_vhost_socket_dir} - backend: - tenant_vlan_range: ${_param:neutron_tenant_vlan_range} - nova: - compute: - libvirt_service: libvirtd - libvirt_bin: /etc/default/libvirtd - linux: - network: - dpdk_pkgs: - - dpdk - - dpdk-dev - - dpdk-igb-uio-dkms - - dpdk-rte-kni-dkms - interface: - dpdk0: - name: ${_param:dpdk0_name} - pci: ${_param:dpdk0_pci} - driver: igb_uio - enabled: true - bridge: br-prv - type: dpdk_ovs_port - n_rxq: 2 - br-prv: - enabled: true - type: dpdk_ovs_bridge diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2 new file mode 100644 index 000000000..76fa17946 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2 @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2017 Mirantis Inc., Enea AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +{%- if conf.idf is defined and conf.idf.net_config is defined -%} + {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%} +{%- else -%} + {%- set vlan_private = '1000' -%} +{%- endif -%} +--- +classes: + - cluster.baremetal-mcp-pike-common-ha.openstack_compute + - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra + - system.neutron.compute.nfv.dpdk +parameters: + neutron: + gateway: + dpdk: 'True' + vhost_socket_dir: ${_param:compute_ovs_vhost_socket_dir} + backend: + tenant_vlan_range: ${_param:neutron_tenant_vlan_range} + nova: + compute: + libvirt_service: libvirtd + libvirt_bin: /etc/default/libvirtd + linux: + network: + interface: + dpdk0: + name: ${_param:dpdk0_name} + pci: ${_param:dpdk0_pci} + driver: igb_uio + enabled: true + bridge: br-prv + type: dpdk_ovs_port + n_rxq: 2 + br-prv: + enabled: true + type: dpdk_ovs_bridge + address: ${_param:tenant_address} + netmask: 255.255.255.0 + {%- if vlan_private and vlan_private != 'native' %} + tag: {{ vlan_private }} + {%- endif %} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml index 7d85fda41..49af851cc 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml @@ -10,7 +10,7 @@ classes: - cluster.baremetal-mcp-pike-common-ha.openstack_init parameters: _param: - neutron_tenant_network_types: "flat,vlan" + neutron_tenant_network_types: "flat,vxlan" neutron_tenant_vlan_range: "1000:1030" nova_cpu_pinning: "5-7,13-15" compute_hugepages_size: 2M diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml index 819fa5efa..c59cdaade 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml +++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml @@ -19,11 +19,6 @@ parameters: tenant_network_types: ${_param:neutron_tenant_network_types} linux: network: - dpdk_pkgs: - - dpdk - - dpdk-dev - - dpdk-igb-uio-dkms - - dpdk-rte-kni-dkms interface: dpdk0: name: ${_param:dpdk0_name} -- cgit 1.2.3-korg