Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
|
|
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
|
|
|
|
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
|
|
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>
|
|
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
|
|
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
|
|
|
|
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
|
|
|
|
|
|
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>
|
|
'pass' is added on a valid function, which is not required
for a stub function which has some implementation.
Change-Id: I8c35790a8b2a378231df535663c3e6f3a5fe5491
|
|
Fixes an issue where string values for nm_controlled were not converted
to the appropriate boolean values.
Closes-Bug: #1673878
Change-Id: I912ca2ef54d1d1f97e76b3922b7c2fecc77040ff
|
|
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
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
|
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
|
|
This patch adds an option "ovs_fail_mode" with a default value of
'standalone'. This is written to the interface configuration data as
part of the ovs_extra options.
Closes-Bug: #1640812
Change-Id: I2f30e56ff9fbda7beac21d95d15dbde0b01ba451
|
|
While primarily to work around a heat issue that prevents intrinsic
functions from being used for parameters being passed to NetworkConfig
resources, this could be generally useful in other ways.
Partial-Bug: #1640812
Change-Id: Ie9001f1d41f514666a44c8d9295b78a13e2108dc
|
|
|
|
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
|
|
route_options will append additional options
to route definitions.
Change-Id: I2b70efdd9c6df7ea252576e245fbc0e9c46ea4bd
|
|
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
|
|
|
|
|
|
When using mapping file with mac address, mapping logic will try
to fetch the mac address of the interface, which will fail. Storing
the mac address also in the DPDK mapping file so that we can satisfy
mapping logic.
Closes-Bug: #1619330
Change-Id: I92ba7f589c8d848feb083f07c3f937b50aca388e
|
|
* os-net-config is called multiple times during the deploy.
Once the interface is bound to a driver, it will not be
listed for ethtool to get the pci address, which will
through exception. Handled this exception.
* Stored the DPDK bound nic configs at '/var/lib/os-net-config/
dpdk_mappings.yaml' file to emulate the same nic numbering
after the nic has been bound to the DPDK driver.
Partial-Bug: #1619330
Change-Id: I6b1e45003f851f1fcf5b8730890c75331e8d0f8f
|
|
NotImplementedError is the name of the exception
(https://docs.python.org/2/library/exceptions.html).
NotImplemented is the name of a constant
(https://docs.python.org/2/library/constants.html).
>>> raise NotImplemented()
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
raise NotImplemented()
TypeError: 'NotImplementedType' object is not callable
>>> raise NotImplementedError()
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
raise NotImplementedError()
NotImplementedError
This patch fix it.
Change-Id: I8b8b47de26b9bf688d9d27a4daa6d9910994ac4a
Closes-Bug: #1339855
|
|
- 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
|
|
Modified the sample code to use numbered nics instead of physical
device name and added test code for testing the numbered nic usecases.
Implements: blueprint tripleo-ovs-dpdk
Depends-On: If1c91402d2d393140dc1b4a678e68a1bcdbe81e4
Change-Id: Ifadb495be57fcef56a97250de0c52fd03f2dd817
|
|
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
|
|
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
|
|
The original implementation supported a strictly numeric mapping scheme
(e.g. nic1, nic2) that could misbehave if an active NIC was not listed in the
user's mapping file. This change fixes the misbehavior, and enhances the
feature by not requiring NIC aliases follow the numeric mapping scheme. This
allows the user to choose meaningful names for the NIC aliases.
NIC mapping now happens in two steps:
1) Process any user supplied mappings
- NIC alias does not need to follow the numeric "nicN" scheme
- Existing validation rules apply: mappings for inactive NICs are ignored
(but logged), and duplicate mappings are rejected
2) Generate default mappings as needed
- Only applies to active NICs that aren't already mapped
- Follows the numeric scheme (nic1, nic2) using the NIC number based on
the list of active NICs
- No default mapping is assigned if another NIC is already using that
numeric alias
Change-Id: I6943623a51702349f6a7dcf2de8a8429078a3ab0
Closes-Bug: 1612723
|
|
|
|
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
|
|
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
|
|
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
|
|
|