Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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
|
|
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
|
|
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>
|
|
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
|
|
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 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
|
|
This patch adds sample json and yaml for:
- setting the OVS bridge fail mode using the new ovs_fail_mode option
- using the {name} replacement feature for ovs_extra data for inserting
the bridge name in configuration data
Change-Id: I2af32edbba0b635207888ad0502b2296f502c274
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
This change adds support for Linux Bonding to the impl_ifcfg
in os-net-config. This change adds support for configuring Linux
Bonds using the Bonding module rather than Open vSwitch. Most of
the options for Linux Bonds are the same as OVS, with the exception
of bonding_options instead of ovs_options.
Change-Id: If8c6de1554234277843de9fac58536dd5b0a941b
|
|
When multiple interfaces are configured with DHCP, and more than
one interface receives a gateway from the DHCP server(s), the
resulting default gateway on the system is unpredictable. This
change adds the "defroute" boolean to the configuration syntax
for os-net-config. Any interface type may be marked so that the
gateway received from the DHCP server will not be eligible as a
default gateway for the system. This only works for ifcfg files,
/etc/network/interfaces lacks an equivalent option.
Change-Id: Id775f3506b2ec60c9a2833efd49fb8319151c00d
Closes-Bug: 1449288
|
|
|
|
This adds the option to permanently rewrite the configuration so the
aliases are used instead of the system name. This is useful where
you have a variety of hardware and you want to have consistent device
naming accross all platforms - this allows you to essentially rename
the interfaces permanently so they match the abstracted nicN names.
Note, this needs to be run with --cleanup or the old (now conflicting)
configs will still be in place, and it may require a reboot before
the changes are fully applied.
Change-Id: I5af146e764b72c4beaa41c549fabff0af8802152
|
|
Currently there's a fixed mapping between abstracted interface
names (nic1, nic2 etc) and the underlying biosdevname for the
device.
In many cases, this mapping based on system enumeration is
sufficient, but in some cases, particularly when you perform
detailed pre-deployment discovery of interfaces, you may wish
to alter the mapping independently of the config (e.g if the
config is in a heat template, and the discovery data is
provided at runtime).
So this adds a -m option to os-net-config, which enables a
mapping file to be provided, such that specific interfaces
may be mapped to their abstract names based on knowledge of
the devices or the networks they are connected to.
The mapping file has the following format, where em1 and em2 are
device names as detected by the OS (e.g biosdevname):
interface_mapping:
nic1: em2
nic2: em1
Or you can use the device MAC instead:
interface_mapping:
nic1: 12:34:56:78:9a:bc
nic2: 12:34:56:de:f0:12
Change-Id: I93e6d3ed733244834bb3c2126c91db705b4d9167
|
|
Change-Id: Icdd35f6757d1179cb667fc2808bbd42655f7425b
|
|
Adds a simple example showing how an individual interface can be
configured, e.g outside of a bond etc.
Change-Id: I05dcb4fabe718686e306bdc719b32f0fb40c1b5e
|
|
|
|
Updates the object model so that a VLAN on top of a bridge
(an OVS int port) doesn't require a physical device to
be set in the object model.
|
|
Adds new YAML examples. Also adds some new CLI test
cases which compare --noop stdout (from the CLI) for
the json and yaml examples to verify they generate
the same things.
|
|
|