Only configure DHCP for real interfaces

Updates the generate-interfaces-file.sh script in
the dhcp-all-interfaces element so that we only
add interfaces that have real MAC addresses.

The generate-interfaces-file.sh script is run early enough
in the boot process (before OVS is initialized) that this
isn't usually a problem unless you execute it manually by hand
after booting. Then you'll end up with network/DHCP
configs for all of your OVS bridges, etc. This
patch avoids configuring all of the virtual interfaces
which have generated MAC addresses.

Change-Id: I7a705084aa5b11305ac0ec5ca37fd2e87a2ae8b7
Closes-bug: 1239479
This commit is contained in:
Dan Prince 2014-01-21 15:58:45 -05:00
parent 1e04079d4f
commit f58f859303
2 changed files with 7 additions and 3 deletions

View File

@ -3,8 +3,8 @@ Autodetect network interfaces during boot and configure them for DHCP
The rationale for this is that we are likely to require multiple
network interfaces for use cases such as baremetal and there is no way
to know ahead of time which one is which, so we will simply run a
DHCP client on all interfaces (except lo) that are visible on the first
boot.
DHCP client on all interfaces with real MAC addresses (except lo) that
are visible on the first boot.
The script /usr/local/sbin/generate-interfaces-file.sh will be called
early in each boot and will scan available network interfaces and

View File

@ -51,10 +51,14 @@ function disable_interface() {
}
for interface in $(ls /sys/class/net | grep -v ^lo$) ; do
MAC_ADDR_TYPE="$(cat /sys/class/net/${interface}/addr_assign_type)"
echo -n "Inspecting interface: $interface..."
if ifquery $interface >/dev/null 2>&1 ; then
echo "Has config, skipping."
else
elif [ "$MAC_ADDR_TYPE" != "0" ]; then
echo "Device has generated MAC, skipping."
else
ip link set dev $interface up >/dev/null 2>&1
HAS_LINK="$(get_if_link $interface)"