From 29d4c7d5849d8690a3567e502b71336116f4e11b Mon Sep 17 00:00:00 2001 From: Feng Pan Date: Wed, 19 Jul 2017 12:59:20 -0400 Subject: Add support for fdio scenarios Add support for the following scenarios: - os-odl-fdio-ha - os-odl-fdio-noha - os-nosdn-fdio-noha - os-nosdn-fdio-ha apex-tripleo-heat-templates: If11092e6581445a70e63c8f6c48518698b3cc8fc apex-puppet-tripleo: If498c41d706c8f14a5b0bbee64cb4d26cd78c2d0 apex-os-net-config: If7a2c6119bf613f1fc8846237b077cd8f0e26015 Change-Id: Id3fdd09f6e0d2b7666d08c0dc7802165797eefdc Signed-off-by: Feng Pan --- build/patches/neutron-patch-NSDriver.patch | 64 ++++++---------------- .../puppet-neutron-ml2-ip-version-fix.patch | 28 ++++++++++ ...ppet-neutron-vpp-ml2-type_drivers-setting.patch | 52 ++++++++++++++++++ 3 files changed, 96 insertions(+), 48 deletions(-) create mode 100644 build/patches/puppet-neutron-ml2-ip-version-fix.patch create mode 100644 build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch (limited to 'build/patches') diff --git a/build/patches/neutron-patch-NSDriver.patch b/build/patches/neutron-patch-NSDriver.patch index d5889e38..f01d0318 100644 --- a/build/patches/neutron-patch-NSDriver.patch +++ b/build/patches/neutron-patch-NSDriver.patch @@ -1,16 +1,16 @@ -From ff4e918d21970a81604a0aaa2af888141f93cdac Mon Sep 17 00:00:00 2001 +From d51e6ba77c3f40c7c04c97b1de06bf9344c95929 Mon Sep 17 00:00:00 2001 From: Feng Pan -Date: Sun, 5 Feb 2017 21:34:19 -0500 +Date: Thu, 20 Jul 2017 16:12:45 -0400 Subject: [PATCH] Add NSDriver --- neutron/agent/l3/namespaces.py | 6 ++-- - neutron/agent/l3/router_info.py | 14 ++++---- + neutron/agent/l3/router_info.py | 12 ++++--- neutron/agent/linux/interface.py | 76 +++++++++++++++++++++++++++++++++++++++- - 3 files changed, 87 insertions(+), 9 deletions(-) + 3 files changed, 86 insertions(+), 8 deletions(-) diff --git a/neutron/agent/l3/namespaces.py b/neutron/agent/l3/namespaces.py -index e70d7bb..3c932a8 100644 +index f65c706..e9fc4b7 100644 --- a/neutron/agent/l3/namespaces.py +++ b/neutron/agent/l3/namespaces.py @@ -18,6 +18,7 @@ import functools @@ -32,7 +32,7 @@ index e70d7bb..3c932a8 100644 name = self._get_ns_name(router_id) super(RouterNamespace, self).__init__( name, agent_conf, driver, use_ipv6) -@@ -131,7 +133,7 @@ class RouterNamespace(Namespace): +@@ -132,7 +134,7 @@ class RouterNamespace(Namespace): elif d.name.startswith(ROUTER_2_FIP_DEV_PREFIX): ns_ip.del_veth(d.name) elif d.name.startswith(EXTERNAL_DEV_PREFIX): @@ -42,10 +42,10 @@ index e70d7bb..3c932a8 100644 bridge=self.agent_conf.external_network_bridge, namespace=self.name, diff --git a/neutron/agent/l3/router_info.py b/neutron/agent/l3/router_info.py -index 3fd3934..b33fb7e 100644 +index 46db6a5..6775882 100644 --- a/neutron/agent/l3/router_info.py +++ b/neutron/agent/l3/router_info.py -@@ -27,6 +27,7 @@ from neutron.common import exceptions as n_exc +@@ -30,6 +30,7 @@ from neutron.common import exceptions as n_exc from neutron.common import ipv6_utils from neutron.common import utils as common_utils from neutron.ipam import utils as ipam_utils @@ -53,15 +53,15 @@ index 3fd3934..b33fb7e 100644 LOG = logging.getLogger(__name__) INTERNAL_DEV_PREFIX = namespaces.INTERNAL_DEV_PREFIX -@@ -47,6 +48,7 @@ class RouterInfo(object): - agent_conf, +@@ -52,6 +53,7 @@ class RouterInfo(object): interface_driver, use_ipv6=False): + self.agent = agent + self.ovs_driver = OVSInterfaceDriver(agent_conf) self.router_id = router_id self.ex_gw_port = None self._snat_enabled = None -@@ -57,7 +59,7 @@ class RouterInfo(object): +@@ -63,7 +65,7 @@ class RouterInfo(object): self.router = router self.use_ipv6 = use_ipv6 ns = self.create_router_namespace_object( @@ -70,7 +70,7 @@ index 3fd3934..b33fb7e 100644 self.router_namespace = ns self.ns_name = ns.name self.available_mark_ids = set(range(ADDRESS_SCOPE_MARK_ID_MIN, -@@ -94,9 +96,9 @@ class RouterInfo(object): +@@ -100,9 +102,9 @@ class RouterInfo(object): self.router_namespace.create() def create_router_namespace_object( @@ -82,7 +82,7 @@ index 3fd3934..b33fb7e 100644 @property def router(self): -@@ -583,7 +585,7 @@ class RouterInfo(object): +@@ -609,7 +611,7 @@ class RouterInfo(object): for ip in floating_ips] def _plug_external_gateway(self, ex_gw_port, interface_name, ns_name): @@ -91,7 +91,7 @@ index 3fd3934..b33fb7e 100644 ex_gw_port['id'], interface_name, ex_gw_port['mac_address'], -@@ -641,7 +643,7 @@ class RouterInfo(object): +@@ -679,7 +681,7 @@ class RouterInfo(object): self._add_route_to_gw(ex_gw_port, device_name=interface_name, namespace=ns_name, preserve_ips=preserve_ips) @@ -100,17 +100,8 @@ index 3fd3934..b33fb7e 100644 interface_name, ip_cidrs, namespace=ns_name, -@@ -735,7 +737,7 @@ class RouterInfo(object): - for stale_dev in stale_devs: - LOG.debug('Deleting stale external router device: %s', stale_dev) - pd.remove_gw_interface(self.router['id']) -- self.driver.unplug(stale_dev, -+ self.ovs_driver.unplug(stale_dev, - bridge=self.agent_conf.external_network_bridge, - namespace=self.ns_name, - prefix=EXTERNAL_DEV_PREFIX) diff --git a/neutron/agent/linux/interface.py b/neutron/agent/linux/interface.py -index c2eb06e..80da16f 100644 +index 1f1ed39..b7781e2 100644 --- a/neutron/agent/linux/interface.py +++ b/neutron/agent/linux/interface.py @@ -15,7 +15,7 @@ @@ -122,7 +113,7 @@ index c2eb06e..80da16f 100644 import netaddr from neutron_lib import constants from oslo_config import cfg -@@ -288,6 +288,80 @@ class NullDriver(LinuxInterfaceDriver): +@@ -317,6 +317,80 @@ class NullDriver(LinuxInterfaceDriver): def unplug(self, device_name, bridge=None, namespace=None, prefix=None): pass @@ -203,29 +194,6 @@ index c2eb06e..80da16f 100644 class OVSInterfaceDriver(LinuxInterfaceDriver): """Driver for creating an internal interface on an OVS bridge.""" -diff --git a/neutron/agent/l3/ha_router.py b/usr/lib/python2.7/site-packages/neutron/agent/l3/ha_router.py -index ca0e50d..2c4fdad 100644 ---- a/neutron/agent/l3/ha_router.py -+++ b/usr/lib/python2.7/site-packages/neutron/agent/l3/ha_router.py -@@ -52,15 +52,14 @@ class HaRouterNamespace(namespaces.RouterNamespace): - class HaRouter(router.RouterInfo): - def __init__(self, state_change_callback, *args, **kwargs): - super(HaRouter, self).__init__(*args, **kwargs) -- - self.ha_port = None - self.keepalived_manager = None - self.state_change_callback = state_change_callback - - def create_router_namespace_object( -- self, router_id, agent_conf, iface_driver, use_ipv6): -+ self, router_id, agent_conf, iface_driver, use_ipv6, ovs_driver): - return HaRouterNamespace( -- router_id, agent_conf, iface_driver, use_ipv6) -+ router_id, agent_conf, iface_driver, use_ipv6, ovs_driver) - - @property - def ha_priority(self): - -- 2.9.3 diff --git a/build/patches/puppet-neutron-ml2-ip-version-fix.patch b/build/patches/puppet-neutron-ml2-ip-version-fix.patch new file mode 100644 index 00000000..3cbb3a8c --- /dev/null +++ b/build/patches/puppet-neutron-ml2-ip-version-fix.patch @@ -0,0 +1,28 @@ +From e3e4a9cf57d5d7da6914b31527188eff7e290238 Mon Sep 17 00:00:00 2001 +From: Feng Pan +Date: Wed, 17 May 2017 11:39:31 -0400 +Subject: [PATCH] Make sure overlay_ip_version is treated as string + +puppet throws error if overlay_ip_version is passed in through hiera +as an integer. We should make sure this variable is treated as string +for the 'in' operator. + +Closes-Bug: #1691502 + +Change-Id: I1c034e8018c959672b106e2d57992cf93b945d8a +Signed-off-by: Feng Pan +--- + +diff --git a/manifests/plugins/ml2.pp b/manifests/plugins/ml2.pp +index d931e72..b943593 100644 +--- a/manifests/plugins/ml2.pp ++++ b/manifests/plugins/ml2.pp +@@ -171,7 +171,7 @@ + warning ('supported_pci_vendor_devs is deprecated, has no effect and will be removed in a future release.') + } + +- if !is_service_default($overlay_ip_version) and !($overlay_ip_version in [4, 6]) { ++ if !is_service_default($overlay_ip_version) and !("${overlay_ip_version}" in ['4', '6']) { + fail('Invalid IP version for overlay_ip_version') + } + diff --git a/build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch b/build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch new file mode 100644 index 00000000..a84ab83f --- /dev/null +++ b/build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch @@ -0,0 +1,52 @@ +From 8e37e0fae6195ec177828a9e9d36c6ee009cd372 Mon Sep 17 00:00:00 2001 +From: Feng Pan +Date: Thu, 18 May 2017 17:39:42 -0400 +Subject: [PATCH] Add ml2 type_drivers setting + +Change-Id: Ie47a1ace6302d7eccd3ead676c4e1cde7e82c5d2 +--- + manifests/agents/ml2/vpp.pp | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/manifests/agents/ml2/vpp.pp b/manifests/agents/ml2/vpp.pp +index f17d67e8..08427833 100644 +--- a/manifests/agents/ml2/vpp.pp ++++ b/manifests/agents/ml2/vpp.pp +@@ -42,6 +42,11 @@ + # in the vpp config. + # Defaults to false. + # ++# [*type_drivers*] ++# (optional) List of network type driver entrypoints to be loaded ++# Could be an array that can contain flat, vlan or vxlan ++# Defaults to $::os_service_default. ++# + class neutron::agents::ml2::vpp ( + $package_ensure = 'present', + $enabled = true, +@@ -51,6 +56,7 @@ class neutron::agents::ml2::vpp ( + $etcd_port = $::os_service_default, + $etcd_user = $::os_service_default, + $etcd_pass = $::os_service_default, ++ $type_drivers = $::os_service_default, + $purge_config = false, + ) { + include ::neutron::deps +@@ -61,12 +67,12 @@ class neutron::agents::ml2::vpp ( + } + + neutron_agent_vpp { +- 'ml2_vpp/physnets': value => $physnets; ++ 'ml2_vpp/physnets': value => $physnets; + 'ml2_vpp/etcd_host': value => $etcd_host; + 'ml2_vpp/etcd_port': value => $etcd_port; + 'ml2_vpp/etcd_user': value => $etcd_user; + 'ml2_vpp/etcd_pass': value => $etcd_pass; +- 'DEFAULT/host': value => $::hostname; ++ 'ml2/type_drivers': value => join(any2array($type_drivers), ','); + } + + package { 'neutron-vpp-agent': +-- +2.13.3 + -- cgit 1.2.3-korg