From ab0e0d433fb363f6a01b7c8305771f2bde47930e Mon Sep 17 00:00:00 2001 From: karthik s Date: Wed, 15 Feb 2017 18:03:14 +0530 Subject: Restart Openvswitch after adding DPDK ports OvS needs to be restarted after adding a DPDK port. This change shall be removed on migration to OvS 2.7 where DPDK Hotplug support is available. Co-Authored-By: Saravanan KR Closes-Bug: #1668375 Signed-off-by: karthik s Change-Id: I250bb8e9a8e50874a82bf7f159e5a9d5677ef5ac --- os_net_config/impl_ifcfg.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'os_net_config/impl_ifcfg.py') diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py index 0a4f817..84a5139 100644 --- a/os_net_config/impl_ifcfg.py +++ b/os_net_config/impl_ifcfg.py @@ -694,6 +694,7 @@ class IfcfgNetConfig(os_net_config.NetConfig): nfvswitch_interfaces = [] # nfvswitch physical interfaces nfvswitch_internal_ifaces = [] # nfvswitch internal/management ports stop_dhclient_interfaces = [] + ovs_needs_restart = False for interface_name, iface_data in self.interface_data.items(): route_data = self.route_data.get(interface_name, '') @@ -719,6 +720,11 @@ class IfcfgNetConfig(os_net_config.NetConfig): update_files[route6_path] = route6_data if "BOOTPROTO=dhcp" not in iface_data: stop_dhclient_interfaces.append(interface_name) + # Openvswitch needs to be restarted when OVSDPDKPort or + # OVSDPDKBond is added + if "OVSDPDK" in iface_data: + ovs_needs_restart = True + else: logger.info('No changes required for interface: %s' % interface_name) @@ -926,6 +932,16 @@ class IfcfgNetConfig(os_net_config.NetConfig): for oldname, newname in self.renamed_interfaces.items(): self.ifrename(oldname, newname) + # DPDK initialization is done before running os-net-config, to make + # the DPDK ports available when enabled. DPDK Hotplug support is + # supported only in OvS 2.7 version. Until then, OvS needs to be + # restarted after adding a DPDK port. This change will be removed on + # migration to OvS 2.7 where DPDK Hotplug support is available. + if ovs_needs_restart: + msg = "Restart openvswitch" + self.execute(msg, '/usr/bin/systemctl', + 'restart', 'openvswitch') + for location, data in update_files.items(): self.write_config(location, data) -- cgit 1.2.3-korg