aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/impl_ifcfg.py
AgeCommit message (Collapse)AuthorFilesLines
2017-09-15Allow to pass more than two DNS while putting 2 DNSCédric Jeanneret1-3/+3
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-02OvS 2.7 support - dpdk-devargs needs to provided for DPDK devicesKarthik S1-0/+18
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-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-06-27Merge "Continue bringing up interfaces even if one fails"Jenkins1-0/+7
2017-06-09Merge "Multiqueue support for OvsDpdkBond"Jenkins1-0/+5
2017-06-08Merge "Configure multi-queue value for DPDK Port"Jenkins1-0/+4
2017-05-31Multiqueue support for OvsDpdkBondKarthik S1-0/+5
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 S1-0/+6
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 Nemec1-0/+7
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 Upadhyay1-0/+4
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-04-28Configure mtu value for DPDK portSanjay Upadhyay1-0/+2
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-03-21Add support for VPP interfaceFeng Pan1-0/+43
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-10Allow setting NM_CONTROLLED=yes in os-net-config ifcfg filesDan Sneddon1-1/+4
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 s1-0/+16
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"Jenkins1-0/+11
2017-01-27Network service is failing with DPDKJaganathan Palanisamy1-0/+11
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-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-05Make os-net-config pass tox py3 testsFrank A. Zdarsky1-11/+11
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
2016-11-18Add support for enabling hotplug on interfacesBrent Eagles1-1/+4
This patch adds support for enabling hotplugging on interfaces (disabled by default). This is useful for configuring SR-IOV root devices so that they "return" to the system when no longer used by a VM. Note: also updates an invalid value in the interface and ib_interface sample files. Partial-Bug: #1639901 Change-Id: Idfc17d6f20bb306271838895bc53f4b109dd664d
2016-11-16Merge "Stop dhclient in os-net-config if interface not set for DHCP"Jenkins1-0/+44
2016-11-15Stop dhclient in os-net-config if interface not set for DHCPBob Fournier1-0/+44
As described in https://bugs.launchpad.net/tripleo/+bug/1640598, there are situations in which the dhclient instance started by dhcp-all-interfaces runs even after the interface is no longer configured for DHCP. This change will terminate the instance using the '-r' argument if 'BOOTPROTO' is not set to 'dhcp' in the ifcfg file for the interface. The dhclient will only be stopped if a dhclient pid file exists, the pid file will be removed after stopping dhclient. Co-Authored-By: Dan Sneddon <dsneddon@redhat.com> Change-Id: I8a52ef5fb8052f185c01dcc27a1ecd70f5d630c8 Closes-Bug: 1640598
2016-11-11Add support for ethtool_opts optionPierre Blanc1-0/+5
This patch add an optional option to specify the ETHTOOL_OPTS for each interface. ETHTOOL_OPTS option will be written to the ifcfg file. Change-Id: I6b594e89ba6b4c17e8df79def997f6c9ea427a3a
2016-10-19Add route_options parameterMatthew Flusche1-10/+15
route_options will append additional options to route definitions. Change-Id: I2b70efdd9c6df7ea252576e245fbc0e9c46ea4bd
2016-09-27Add options attribute to NFVSwitchSarath Kumar1-6/+6
Adding options to NFVSwitch type bridge will give flexibility and avoid specific attributes like 'cpus' in the yaml file (which will now be moved into the options) Change-Id: I4d715b641c54de969b9195b1a4b16195b2d7e595
2016-08-29Cleanups and new unit test for IVSSarath Kumar1-1/+1
- refactor test_object unit-test for IVS to follow other object class tests - add new CLI unit test for IVS - cleanup comments from https://review.openstack.org/#/c/345599 Change-Id: I0c337b019ae90ee7b2f207ff9b5060ed67bf182f
2016-08-26Add support for OVS DPDK BondSaravanan KR1-0/+35
Add functionality to os-net-config to allow DPDK bonding of interfaces, and implement support for parameters to be passed by TripleO Heat Templates. Implements: blueprint tripleo-ovs-dpdk Depends-On: Id4a23ced28b92a642c180a35c55080e5f4e2e05d Change-Id: If1c91402d2d393140dc1b4a678e68a1bcdbe81e4
2016-08-25Add support for OVS DPDK Bridge and PortSaravanan KR1-1/+53
Add support in os-net-config for DPDK ports and OVS user bridges, and implement parameters which will be set by the TripleO Heat Templates when using TripleO. Implements: blueprint tripleo-ovs-dpdk Change-Id: Id4a23ced28b92a642c180a35c55080e5f4e2e05d
2016-08-11Merge "Enable os-net-config to support and configure NFVSwitch"Jenkins1-0/+101
2016-08-09Fix Linux bond/slave ifup orderingDan Sneddon1-3/+3
The latest version of os-net-config is not reliably enabling bonding when there are no existing bonds on the system. This is due to an order-of-operations problem where it tries to bring up the bond before the slave interfaces. This can result in an error because the bonding module is not present. This change activates the bond only after the interfaces have been activated. This should ensure that the bonding module is loaded. Change-Id: I62e4b10a88168948ed59170285223fb4f8d8de88 Fixes-bug: 1611471
2016-08-02Enable os-net-config to support and configure NFVSwitchSarath Kumar1-0/+101
These changes are to generate /etc/sysconf/network-scripts/ifcfg-* and /etc/sysconfig/nfvswitch configuration files for nfvswitch and its interfaces. NFVSwitch is a virtual switch implementation based on DPDK for datacenter workloads with very high throughput needs. Change-Id: If02edb9c4c54c014f67290fe0c34e2fc73cb95bd
2016-07-25Add adapter teaming support using teamd for ifcfg-systemsDan Sneddon1-1/+60
This change adds support for Linux adapter teams using teamd to manage the bonds instead of the kernel bonding module. Adapter teams using teamd can act like bonds, but also support additional features and possibly more robust fault tolerance. This implementation is fairly straightforward, in order to maintain backward compatibility with templates made for Linux bonds. The only difference in the syntax between the two is type: team instead of type: linux_bond, and the bonding_options format is different. The configuration files for teams should contain the team options as a JSON string. The options that can be used are documented in the teamd.conf(5) man page. If an interface is marked as primary, the priority will be changed from default 0 to 100, making this interface the preferred one. In addition, the MAC address of the Team and all member interfaces will be set to that of the primary interface. At this time, there is no way to set the priority of link members individually, only the interface marked primary will have a non-default priority. This change has been tested on bare metal and worked for a team with two bonded interfaces using LACP. The team was part of an OVS bridge, and there was a VLAN interface on the team. Everything worked as expected. Unit tests are included and passing. Change-Id: If1d516ce8f9ada76375c3a52c5557d3f7348981a Implements: blueprint os-net-config-teaming
2016-07-05Add support for Infiniband interfacesDan Sneddon1-0/+46
This patch adds support for Infiniband interfaces. The only difference between Inifiniband and regular interfaces at this time is that an interface with type "ib_interface" will have "TYPE=Infiniband" added to the ifcfg file. However, the Infiniband interface is implemented as a full new class, so in the future we can add script functions or additional config options to the Infiniband interface config if needed. Unit tests for both the object and the ifcfg implementation are included. This patch does not include an implementation for systems that use /etc/network/interfaces (Debian-based systems). Note that this change has not yet been tested on bare metal with Infiniband hardware. Fixes bug: https://bugzilla.redhat.com/show_bug.cgi?id=1326616 Change-Id: Iaeaca9cd71e2cea6147951d49aecc7458be4ca0b
2016-06-14Add support for OVS patch portsJames Slagle1-0/+17
OVS patch ports are used to connect two OVS bridges so traffic can flow between them. This is generally useful for various cases. Specifically it could be used to connect the bridges created by TripleO networking configurations (br-ex, etc) to the bridge created by the multinode networking setup in infra's nodepool (br_pub). This allows the nodes in a multinode deployment to have connectivity across private subnets where such traffic is typically firewalled off in public clouds. Change-Id: I11404106cb3f53734f6fc9a35c22f905a0770245
2016-04-13Add support for OVS tunnelsJames Slagle1-0/+18
Adds support for configuring OVS Tunnels via os-net-config. Tunnels are configured as members of ovs_bridge's where the type is set to ovs_tunnel. The object also supports setting OVS extra and options so that additional tunnel data can be defined, such as remote_ip. Change-Id: I31ac1cbe8a13247a1529c0f99a0aea5807888844
2016-04-11Merge "Bump hacking in test-requirements.txt"Jenkins1-10/+10
2016-04-07Use PEERDNS when no dns_servers or use_dhcp is providedGiulio Fidente1-0/+2
PEERDNS=no ensures resolv.conf is not modified by ifup/ifdown when restarting an interface. Closes-bug: #1567004 Change-Id: Idec15d4c1630638ce8362f9d95ae3c09bcae86a3
2016-04-06Bump hacking in test-requirements.txtDan Prince1-10/+10
Bumps the version of hacking to match that in global-requirements.txt. Change-Id: I7bb98dc773ce821b025d534f537f1a1704a50f9e Closes-bug: #1566463
2016-04-05Add MASTER=bond SLAVE=yes to linux bond interfacesDan Prince1-7/+3
When configuring a linux bond with interfaces we have a bug (due to a missing unit test) where the interfaces weren't being configured with MASTER=<bond_name> SLAVE=yes. This patch adds a unit test to check for the required configuration and cleans up the logic in impl_ifcfg.py to handle it correctly by simply checking for the linux_bond_name property which is already set for us via objects.py. See also: https://bugzilla.redhat.com/show_bug.cgi?id=1323717 Change-Id: Ic632c52265dcbbe6c0ace782e633a2030ad25e6f Closes-bug: 1566428
2016-03-22Fix order-of-operations bug in os-net-config restart_interfacesDan Sneddon1-3/+43
The current order of operations of bringing up interfaces starts with the bridges, and restarts the members of the bridges. This works well when an OVS bond is part of an OVS bridge, but does not work well when Linux bonding is used with no bridges (such as in the case of the Nuage plugin, which creates the bridges outside of the ifcfg files). This change will ensure that Linux bonds are brought up first, then any bridges are brought up, interfaces are brought up next, and the VLAN interfacs are brought up last. This corrects a race condition where any VLAN which was brought up before the bond would not be active, and the VLAN would have to be brought up by hand. This change also fixes a logging issue where os-net-config would report that no changes were necessary when changes were made. Now, the logging messages indicating that "No changes were necessary" show up when no changes are required, instead of when changes are actually made. Change-Id: I1efee3dfd8e8cef01b054bb57a3085cc7eb60372
2016-03-17Merge "Fix hierarchy for Linux Bonds and Linux Bridges"Jenkins1-1/+5
2016-03-11Add ability to set IPv6 routes in os-net-config templatesDan Sneddon1-16/+60
This change adds the ability to write IPv6 routes to the system NIC configuration. In the ifcfg provider, IPv6 routes must be written to network-scripts/route6-<interface> rather than route-interface. This patch checks the next hop, and if it is an IPv6 address (assumed because of the presence of ":"), then the route will be written to route6-<interface>. This patch includes tests to confirm proper operation. Change-Id: I3563800c774a6082a896c7508f5a92e25418fe63
2016-03-11Fix hierarchy for Linux Bonds and Linux BridgesDan Sneddon1-1/+5
This change cleans up some of the Linux Bond and Linux Bridge logic that processes member interfaces and VLANs. One bug is fixed, where a VLAN might be assigned as a slave interface on a bond. Changes were made so that if VLANs are placed under a Linux Bond, the PHYSDEV is set to the bond, so the device: does not need to be specified in the config. This change ensures that if a bridge has a bond and VLANs as members, that the VLAN will be a member of the bridge and not the bond. Change-Id: Id329737f0032e781b111741086ded83f378297a7
2016-03-07Enable os_net_config to configure IVSxinwu1-0/+92
This change generates /etc/sysconf/network-scripts/ifcfg-* for ivs. It also generates /etc/sysconf/ivs configuration file for ivs. It supports only RedHat at this point. Indigo Virtual Switch (IVS, https://github.com/floodlight/ivs) is a virtual switch for Linux. It is compatible with the KVM hypervisor and leveraging the Open vSwitch kernel module for packet forwarding. There are three major differences between IVS and OVS: 1. Each node can have at most one ivs, name is not required. 2. Bond is not allowed to attach to an ivs. It is the SDN controller's job to dynamically form bonds on ivs. 3. IP address can only be statically assigned. Change-Id: I276d736794d123405de793c2a4eb2c1ee55a0fad
2016-02-15Allow setting MTU to 1500Ian Pilcher1-2/+2
There are times when it is desirable to set the MTU of an "interface" to 1500 -- when the external network and the storage network are different VLANs on the same physical interface, for example. Change-Id: Ic5ea6ad05118fd57c26c898a460c19969de4109d Closes-Bug: #1539821
2015-11-20ifcfg: add VLAN=yes when neededGonéri Le Bouder1-0/+3
Add the VLAN=yes parameter if the interface name is in the foo.123 format. This is the behavior and Debian allow the same os-net-config configuration file to be consistent with Red Hat systems. See also: https://bugzilla.redhat.com/show_bug.cgi?id=1283812 Change-Id: Iab2a4861e2231b34899c379963abbef59cf73328 Closes-Bug: #1518449
2015-10-16Merge "Add Linux Bridge capability to os-net-config ifcfg"Jenkins1-0/+41
2015-10-12Add Linux Bridge capability to os-net-config ifcfgDan Sneddon1-0/+41
This patch adds support for Linux Bridges to os-net-config. This is done completely with ifcfg files, brctl is not used directly. Hierarchy is preserved, so a Linux Bridge may have a Linux Bond as a member, which in turn may have multiple interfaces as members. This changeset has been updated to include a more specific example for Linux bridge configuration (that doesn't combine bridging and bonding). This change depends on the change to add support for Linux Bonds. Change-Id: I1ddacd514b02af30139a868071d82cde19b1f946
2015-10-12Merge "Add support for Linux Bonding to os-net-config ifcfg"Jenkins1-0/+47
2015-10-08Merge "Support multiple addresses assignment with ifcfg"Jenkins1-5/+10