AgeCommit message (Collapse)AuthorFilesLines
2018-04-01Add retry and timeout for VPP interface discoveryHEADmasterFeng Pan2-36/+102
VPP sometimes takes some time to come up, this causes VPP interface detection to fail. This patch adds retries for interface discovery so we can properly identify state of VPP interfaces. Also contains minor fixes for regex for VPP configs generation code to prevent cases where we might edit configs that are commented out. Change-Id: I915d5455acb8d496438b9c9e851639d3a43e6fa9 Signed-off-by: Feng Pan <fpan@redhat.com>
2017-11-14Updates .gitreviewTim Rozet1-3/+2
Change-Id: I10939a9a9f93a0c3e5a140a0ef90e3c75118b6d1 Signed-off-by: Tim Rozet <trozet@redhat.com>
2017-09-15Allow to pass more than two DNS while putting 2 DNSC├ędric Jeanneret2-3/+19
Until now, when we pass more than 2 DNS, only the first one is added in the ifcg-* config files. This patch-set proves the issue, and proves the correction actually works. Change-Id: I70a779782ab87cd4f74f3c50b0e649f503b386e3 Closes-Bug: #1716171 (cherry picked from commit 8ddab87c6ee2e80025e9340d806f93921779198b)
2017-08-23Delete controller for standalone OVS bridgesJakub Libosvar4-16/+28
The patch adds an OVS extra parameter to delete controller for bridges configured with standalone fail mode. By default, bridges are created without having an openflow controllers. If node is restarted, the bridge is set to standalone mode but if a service managing the bridge sets a controller, it will remain in the ovsdb. As ovs-vswitchd sets the bridge behavior to normal MAC learning switch only if bridge in standalone mode can't communicate with its controller, leaving controller defined can cause node outage when bridge is used as management network. In such case controller service, like neutron-openvswitch-agent, would need to communicate over management network but given that bridge is in standalone mode but communicates with controller, management network won't be reachable. This creates a chicken-egg problem. By removing controller by default, ovs-vswitchd implements a normal action rule to the standalone bridge and service can use the bridge as management network and eventually set the brdige to secure and set the flows manually. See opened Bugzilla for more information: https://bugzilla.redhat.com/show_bug.cgi?id=1473763 Closes-bug: #1712517 Change-Id: Iad48312667834ea8f5c7145595ae89cb5159b36d (cherry picked from commit f8d76d2cdebfa0d06233a59a8f6539207c5b5a4e)
2017-08-17Update .gitreview for stable/pikeOpenStack Release Bot1-0/+1
Change-Id: Ibcf9bac3e5863b624f533968bb5fa6fca466db94
2017-08-04Merge "There is no documentation for os-net-config"Jenkins1-1/+0
2017-08-02OvS 2.7 support - dpdk-devargs needs to provided for DPDK devicesKarthik S4-6/+141
The pci address of the DPDK NIC needs to be specified as dpdk-devargs when adding the DPDK port. This is required for using DPDK with OvS 2.7 Change-Id: I4975130961199ee04dd002ec987081299e3ddd4a Closes-Bug: #1702457 Signed-off-by: Karthik S <ksundara@redhat.com>
2017-07-28Merge "Fix --noop being ignored for dhclient execution"Jenkins1-1/+4
2017-07-26Merge "Fix 'tox -e cover'"Jenkins2-2/+3
2017-07-19There is no documentation for os-net-configArundhati Surpur1-1/+0
So removing the documentation link. Change-Id: I5167e5787206db429ac74c6c74d7c74da5f83375
2017-07-18Fix --noop being ignored for dhclient executionDan Sneddon1-1/+4
The stop_dhclient_execution() method calls netconfig.execute directly from the object, instead of from the instance of the object. This has the effect that when execute is called, noop is always set false, even if os-net-config was called with --noop. This results in a failure or network outage. This change checks the value of self.noop from within the provider.apply() method before calling the stop_dhclient_execution method. Change-Id: Ie2cc4519d7028dceb3a14bd7711839834db0ebdf Closes-bug: 1699590
2017-07-12Add schema-based config data validationFrank A. Zdarsky7-12/+1632
This patch adds a jsonschema for os-net-config's configuration data and a library function to validate configuration data based on this schema. Adding schema-based validation allows catching a larger class of errors (typos, missing required parameters, etc.) for all devices configurable through os-net-config. The validation is run in the os-net-config CLI after loading the config file. If the config file fails to validate, the current default is to just log a warning and try to continue. By providing the new CLI option '--exit-on-validation-errors', this can be changed to log an error and exist instead. This validation is meant to be reusable, for example for pre-deployment validation of network environments (see change Ic16ee0bc353c46f8fe512454176a07ee95347346). Packaging with os-net-config makes it easier to keep object model and schema in sync. Change-Id: Ie4a905863b2d46c88d9cd6c3afc50e7d0a877090 Signed-off-by: Frank A. Zdarsky <fzdarsky@redhat.com>
2017-07-09Fix 'tox -e cover'Frank A. Zdarsky2-2/+3
'tox -e cover' fails as --coverage-package-name option for 'testr' is not recognized. A work-around proposed by Infra team (see https://bugs.launchpad.net/neutron/+bug/1454772) is to replace 'testr' with 'test'. This patch implements this change and adds the cover/ directory to .gitignore. Change-Id: I659445ea479ea80a4f21d6ebca896abb4fb104f2 Closes-Bug: #1703177
2017-06-27Merge "Continue bringing up interfaces even if one fails"Jenkins5-1/+95
2017-06-09Merge "Multiqueue support for OvsDpdkBond"Jenkins5-2/+97
2017-06-08Use os-net-config mapping file when interface in bond or bridgeBob Fournier2-85/+162
Os-net-config was not using the user supplied mapping file to map interface names for interfaces in bonds or bridges. Fix is to set the mapping file info when creating interface objects in bonds/bridges. Closes-Bug: 1695122 Change-Id: I063256b93c44c2e7a05d9820b0c1f6bf5b73d7a0
2017-06-08Merge "Configure multi-queue value for DPDK Port"Jenkins5-4/+60
2017-05-31Multiqueue support for OvsDpdkBondKarthik S5-2/+97
This patch allows the Multiqueue setting for DPDK bonds. In case of DPDK bonds, the Multiqueue setting needs to be done for each of the interfaces attached to the bond. Implements: blueprint ovs-2-6-features-dpdk Signed-off-by: Karthik S <ksundara@redhat.com> Change-Id: I21b46cee902a17f13df51d456648368e468aadb7
2017-05-31MTU setting for OVSDpdkBondKarthik S4-0/+47
This patch allows the MTU setting for DPDK bonds. In case of DPDK bonds, the MTU setting needs to be done for each of the interfaces attached to the bond. Change-Id: Ida627313d14a674430b2aff3644fd62b2e0bcab7 Implements: blueprint ovs-2-6-features-dpdk Signed-off-by: Karthik S <ksundara@redhat.com>
2017-05-30Continue bringing up interfaces even if one failsBen Nemec5-1/+95
Currently os-net-config exits immediately if an interface fails to come up. This causes problems when we call it with a failsafe configuration because it can result in working interfaces not being configured if there are also non-functional interfaces, which can leave a system unreachable over the network even though it may have a working connection. This change stores errors and handles them after all interfaces have been processed to allow os-net-config to do what it can even with an invalid configuration. If any failures are detected it will still cause os-net-config to report failure at the end. Change-Id: I3bc75e217d0b7c5ae62900f4253ad57ee3720685 Closes-Bug: 1692725
2017-05-23Configure multi-queue value for DPDK PortSanjay Upadhyay5-4/+60
The multi-queue option for DPDK is applied via ovs-vsctl command via ovs_extra params. This patch adds support for configuring the rx_queue (multi-queue) value to the DPDK Ports. Change-Id: Ib9faad5e9d49f78e3a0b45ef3ae0082f3e9d14a6 Co-Authored-By: Karthik S <ksundara@redhat.com> implements: blueprint ovs-2-6-features-dpdk
2017-05-16Remove unused Babel setupAndreas Jaeger2-15/+0
This repo is not translated at all - and not setup for translation. Remove Babel and Babel set up. Change-Id: Ied2e0352f32108fed7b6e3e7355e9f4c029297f1
2017-04-28Configure mtu value for DPDK portSanjay Upadhyay4-1/+9
MTU value is already written to ifcfg file if provided on the interface, but for dpdk port, we have to apply this to ovs-vsctl command via ovs_extra. This patch is adding the support to configure the given mtu vlaue to the dpdk port using ovs_extra. implements: blueprint ovs-2-6-features-dpdk Change-Id: Ic01ed8cee2edbd648de0b64dc7f01da80c153d81
2017-04-25Merge "Removed vlan port on ovs_user_bridge in dpdk bond samples"Jenkins2-15/+0
2017-04-13Merge "os_net_config should map nics that are down if nic is in mapping file"Jenkins4-40/+103
2017-04-11Removed vlan port on ovs_user_bridge in dpdk bond samplesSaravanan KR2-15/+0
vlan port is not supported on the netdev bridges. But the dpdk bond sample contains this wrong configuration. Removing the vlan port on the ovs_user_bridge. Closes-Bug: #1674280 Change-Id: I1acc8a3b8bbacc613344207b43684b0f86ff4a15
2017-04-10os_net_config should map nics that are down if nic is in mapping fileBob Fournier4-40/+103
Currently os-net_config will map nics from a user-supplied mapping file only if the nic is active (operstate = up). This can cause problems if a nic is in a bond and one of the bond's nics has no carrier. This fix will map the nic from the mapping file if the nic is defined on the system, regardless of the operstate status. The fix implements a new function to return a list of available nics (no check of operstate) for use if a mapping file is supplied. The list of active nics must still be used in the default case when numbering nics (no mapping file supplied). There is also some cleanup to check if a user-supplied mac is in the mapping file before attempting to convert the mac to a nic. Change-Id: Ia5d8c8b49b7ac0b51ee42a754f06e5e53587a5f6 Closes-Bug: 1679787
2017-04-07Merge "Handle bools-as-strings nm_controlled values"Jenkins2-1/+42
2017-04-06Merge "Correct the test code to remove 'pass' where it is not needed"Jenkins1-2/+0
2017-04-05Merge "Add support for VPP interface"Jenkins8-10/+503
2017-03-31Fix coverage tox configBen Nemec1-1/+1
By default coverage looks for os-net-config, but since that's not a valid python package name the actual package is called os_net_config. This change correctly specifies that. Change-Id: I5949ad2380942440f74397c2d74c94bc6ef3c55d
2017-03-31Updated from global requirementsBen Nemec3-23/+36
It appears os-net-config is not in the sync list for g-r. We should add it, but in the meantime this will get us up to date. Change-Id: I828a394ce72824eaabe904b563f73734a88c21f8
2017-03-21Add support for VPP interfaceFeng Pan8-10/+503
Vector Packet Processing (VPP) is a high performance packet processing stack that runs in user space in Linux. VPP is used as an alternative to kernel networking stack for accelerated network data path. VPP uses DPDK poll-mode drivers to bind system interfaces rather than kernel drivers. VPP bound interfacees are not visible to kernel networking stack and therefore require different configuration steps in os-net-config. VPP interface will be used in Openstack by either Neutron ML2 driver networking-vpp as an alternative to OVS, or by Opendaylight SDN controller with Honeycomb agent. This patch adds interface configuration support to os-net-config. The kernel nic specified to be VPP interface type will be bound to VPP with a DPDK poll-mode driver. Note that os-net-config will only configure those settings that affect interface binding, all other configurations for VPP will be configured throught TripleO Heat Templates. Implements: blueprint fdio-integration-tripleo Change-Id: Iebb40b7c5b252c51e86b6f44bcf36ed206101390 Signed-off-by: Feng Pan <fpan@redhat.com>
2017-03-20Correct the test code to remove 'pass' where it is not neededSaravanan KR1-2/+0
'pass' is added on a valid function, which is not required for a stub function which has some implementation. Change-Id: I8c35790a8b2a378231df535663c3e6f3a5fe5491
2017-03-17Handle bools-as-strings nm_controlled valuesBrent Eagles2-1/+42
Fixes an issue where string values for nm_controlled were not converted to the appropriate boolean values. Closes-Bug: #1673878 Change-Id: I912ca2ef54d1d1f97e76b3922b7c2fecc77040ff
2017-03-15Merge "H803 hacking have been deprecated"Jenkins1-2/+1
2017-03-10Allow setting NM_CONTROLLED=yes in os-net-config ifcfg filesDan Sneddon4-59/+142
This change adds a flag to the base interface type, nm_controlled. If this flag is true, the ifcfg file will contain NM_CONTROLLED=yes. Since this flag is applied at the base it applies to any interface type. Note that not all interface types are supported by NetworkManager at this time, so this option should be used with caution. A demonstration of the usage is included in the linux_bond_networkmanager.yaml file in the sample directory. Change-Id: I2df6ce5b4bdb04651f27fc5daa64aa752e47f3b1 Closes-Bug: 1671888
2017-03-01Restart Openvswitch after adding DPDK portskarthik s2-0/+46
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 <skramaja@redhat.com> Closes-Bug: #1668375 Signed-off-by: karthik s <ksundara@redhat.com> Change-Id: I250bb8e9a8e50874a82bf7f159e5a9d5677ef5ac
2017-02-14Merge "Network service is failing with DPDK"Jenkins2-0/+18
2017-01-31Merge "Drop py33 support and add py35"Jenkins1-1/+1
2017-01-27Allow ovs_extra to be specified as either a string or listDan Sneddon2-21/+14
This change allows the commands in ovs_extra to be expressed as a string or as a list. If a string is passed, it will be treated as a list with a single element, and other ovs_extra elements will be appended to the same list, such as fail_mode. In order for more than one command to be passed as a string, the commands will need to be separated with double-dashes, similar to the format used by OVS command-line utilities. Change-Id: I3f69e7ab96ff6e06953c3838b3e187b93545d623
2017-01-27Merge "Add check that ovs_extra is passed as list"Jenkins3-3/+52
2017-01-27Network service is failing with DPDKJaganathan Palanisamy2-0/+18
Network service is failing and not started when interface is binded with dpdk driver and interface config file is available. In such case, removing config file for the interface which is binded with dpdk driver. Change-Id: Id445fbfe7abdd54c2ea522960224c7f0e412dd30 Closes-Bug: #1657661
2017-01-23Merge "Exclude SR-IOV VFs in the nic numbering"Jenkins2-1/+34
2017-01-18Remove child members activation for OVS-DPDK bondSanjay Upadhyay1-4/+7
While creating DPDK bond, if-up of the bond interface itself will activate the member interfaces. Individual members should not be called for ifup. Additionally, removing the option to select the primary active-slave member for the bond, because of #1654975. Once it is fixed, primary selection from the network config will be added. Change-Id: I83527ada4a3618927d55b7aa06d436686b12d5b8 Closes-Bug: #1643026.
2017-01-05Add check that ovs_extra is passed as listFrank A. Zdarsky3-3/+52
This patch adds a check that ensures the ovs_extra option, if present, is passed in as list and raises an InvalidConfigException if not. It addresses the issue that a user may mistakingly pass the value as string, which would cause an error later when appending the failure mode or when formatting the ovs_extra parameter. Note: Also fixes a sample file in which ovs_extra was passed as string. Change-Id: I9e8e47390b63d284de10d27b1db2c2cc54c86924 Closes-Bug: #1654196
2017-01-05Make os-net-config pass tox py3 testsFrank A. Zdarsky4-16/+16
This patch improves Python 3 compatibility by replacing .iteritems() with .items() for iterating over dicts and fixing two tests to use portable string comparison. Change-Id: I8e1acafe372f1696823561d6aa8aae5437d34025 Closes-Bug: #1654187
2017-01-04Exclude SR-IOV VFs in the nic numberingSaravanan KR2-1/+34
SR-IOV Virtual Functions will be present as an interface in the directory '/sys/class/net'. As these are virtual interface created during the deployment process, it has to be ignored in the nic numbering logic. Closes-Bug: #1653097 Change-Id: I118a7314d496b531c52be45521d393123cdfe915
2017-01-03Merge "Add support for enabling hotplug on interfaces"Jenkins10-10/+78
2016-12-21H803 hacking have been deprecatedxhzhf1-2/+1
H803 hacking have been removed. https://github.com/openstack-dev/hacking/blob/master/setup.cfg Closes-Bug: #1650741 Change-Id: I915f80e1ef5a04f627fae9d60644b191e9e1cbed