Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
|
|
|
|
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
|
|
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
|
|
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
|
|
|
|
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
|
|
The detailed bug description is at
https://bugs.launchpad.net/os-net-config/+bug/1537330
Since kilo, os-net-config starts to support linux bond.
However, the addr_assign_type value of an active member
interface of a linux bond is 3, but not 0. The consequence
of this problem is that the linux bond member links are
never considered as active, this further messes up the
nicX to interface name mapping.
This change checks if device directory exists, instead
of checking the addr_assign_type value. This directory
exists only when the interface is an actual physical
interface.
Change-Id: I8e4c95a2efa809fd236b07cbce1b81a2e774f858
|
|
Python 2.6 support would be dropped by
Infra team from mitaka,CI would no longer be testing it,
so projects should drop it too.
Change-Id: Ic7dc4b74d231c47c28e789941cd30897880cb791
|
|
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
|
|
|
|
|
|
This way device eth10 is after eth9, and not directly after eth1
Change-Id: I81eba97cccf6c4f314f9037d16ee1f244dbade02
Closes-Bug: #1482818
|
|
|
|
|
|
This change modifies the kwargs in the object instantiation to
use immutable default assignments. This is for object safety,
since a mutable object will not point to a new memory address
on modification. In Python, lists and dicts should not be used
as default assignments for kwargs.
Change-Id: I73993df12ca317161ba32e02a98a5f40ef8904f3
|
|
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
|
|
|
|
|
|
|
|
Adds in the ability to optionally configure DNS
server settings via the ifcfg file formats.
The dns_servers JSON is an array which currently
supports either 1 or 2 DNS servers (per limitations
of the ifcfg format).
Change-Id: I9edecfdd4e1d0f39883b72be554cd92c5685881d
|
|
Needed for coverage 4.0
Change-Id: I900ca20ee5e9c70d220c7f17548e8236f4a24658
|
|
Currently only the first IPv4/v6 address is assigned to a NIC
even if multiple addresses are specified in config file.
With this change, eni implementation can configure multiple
IPv4/v6 addresses for a NIC.
Also this fixes IPv6 netmask format, which currently causes
an error on ifup.
Change-Id: I0a38d376bece8af297bddede594962fd3a193d09
|
|
Currently only the first IPv4/v6 address is assigned to a NIC
even if multiple addresses are specified in config file.
With this change, ifcfg implementation can configure multiple
IPv4/v6 addresses for a NIC.
Also this enables os-net-config to configure IPv6 netmasks.
Change-Id: I31b39abae36e0620dbbcb1001fa51f5ca2bd9ea2
|
|
This patch fixes an issue in the ifcfg provider implementation
that caused interfaces to be started twice. This can
cause failures if the interface uses DHCP and dhclient
was already running.
The child_members function was incorrectly adding the interface
name to the child members set on key error. This patch removes
that logic and simply ignores key errors.
Change-Id: Ibe0e32bc09979bc68b92a722b2bfa383e77502a9
Closes-bug: #1485634
|
|
Change-Id: I3c2614028a8a009e24615dff7a8e2f0c570cbf70
|
|
This patch adds a new --detailed-exit-codes option which can
be used to optionally enable the os-net-config CLI to return
exit code 2 if there have been modifications. Detailed
exit codes are useful if you need to trigger subsequent
external actions based whether os-net-config made changes or not.
Change-Id: I8f22fa15335d1276f4e444a6454a24ff486e1495
|
|
Change-Id: Ice1b8d17804cf7a0aafd308945a5e960fe927bbc
|
|
This patch adds an optional flag that can be used to
pass in args for dhclient when using DHCP.
This use case for this is to be able to control which
DHCP options dhclient listens for and we can thus
disable specific options (like routing) for some
network configurations.
Change-Id: Ic21de0615ea0ef304843c55cc5abe43cb1771169
|
|
This change selects an interface to be the active slave in a bond
with active/passive characteristics. If one of the interfaces is
marked as primary, it will be the active slave. If none of the
interfaces are marked, the interface with the lowest alphanumeric
value will be chosen. For instance em2 comes before em3.
Co-Authored-By: Dan Prince <dprince@redhat.com>
Change-Id: Ic9b4e8c68b788b98a19ea33a76c9210a80deabeb
|
|
This change sets one of the member interfaces of a bond as the primary
interface, which results in that interface being the active slave.
This change adds a step to the apply method in impl_ifcfg which runs
'ovs-appctl bond/set-active-slave <bond> <iface>' after bringing up
the bond interfaces. This step ensures that the bonds work correctly
without LACP switch support. If a member interface on the bond is set
as primary, that interface will be used.
Co-Authored-By: Dan Prince <dprince@redhat.com>
Change-Id: I795bb3b8ef977f9276bfec062b197c473393942e
|
|
|
|
Updates the ifcfg provider so that we don't set
the OVSDHCPINTERFACES config setting if
the interface is private. This doesn't seem to cause
any functional issues but it is not required
and can be confusing.
Change-Id: I9d51905df87969ae1b221680e8f0b5befc7b6bfe
|
|
When using the ifcfg provider vlans on bridges (or bonds)
fail to startup correctly. This is because VLANs on an OVS
bridge are configured as internal ports and these should not
have the VLAN=yes or PHYSDEV ifcfg settings specified.
Change-Id: Ieb743eda8f0a25cdaca43bdea767af26bf504f15
Closes-bug: #1453904
|
|
|
|
In order to allow os-net-config to coexist with NetworkManager, this
patch adds NM_CONTROLLED=no to the top of each interface configuration.
This ensures that NetworkManager will not mess with interfaces that are
configured by os-net-config.
Change-Id: I9d226e032eb1cb411b6ea617936f4425c7fd2c74
|
|
On certain systems, the embedded NICs appear as eno1, eno2, etc.
This patch adds 'eno' to 'em' and 'eth' as interface names that
should be considered embedded NICs.
Change-Id: Icc49596573bdbb8af25f934a647f0a2ab82adaa5
|
|
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 patch updates the handling of the --debug and --verbose
options so that if both are specified then log level is set to
DEBUG.
Change-Id: I65d5665631f5575d1c8343bb7c1b197a61e0e176
Closes-bug: #1450586
|
|
End users may not realize these files are autogenerated
and may be surprised if they make changes to the
/etc/sysconfig/network-scripts files which are then
overwritten on reboot.
Change-Id: I526c228463bd10de2cf3724aa4159b63a9aeff80
|
|
When using persist_mapping to rename nics, you can either use
--no-activate then reboot, or with this patch, allow activation
and we'll take the device links down and rename on the fly avoiding
the need for a reboot.
Change-Id: Ife9486c9f5447e9c7a55f90ba075e22b6344ad67
|
|
Allows you to only install the config, but not take interfaces
down/up. Useful if you wish to defer activation of a new config
until a later time (e.g reboot).
Change-Id: I42f3195e1d3d5d3b9d1c9dbb1f7cf1364503cbd3
|
|
|
|
Refactor some common code so the base-class handles the ifup/down
Change-Id: Id1fee1d2d5c9315717611b7bf18f058c49fe3622
|
|
Currently we only output the config file contents in noop mode,
but it's very useful to see what would be done in terms of taking
interfaces up and down, and especially what will be removed when
--cleanup mode is specified
So this refactors the operations skipped by noop into the base-class
so we can conveniently log what they would do when --noop is selected.
Change-Id: Ia9cfa9a05b2df02c165a2ff992765ab63e55ae6b
|
|
Purge references to modules which have been deprecated by various oslo
libraries.
Requires changes to use oslo.utils and oslo.concurrency, which are
added to the requirements, syncing with the latest in global requirements
so we can also move to the un-namespaced oslo package names.
Change-Id: Idacb71b7871330e3b3fabf4a926a5b8987614c4d
|