- Instead of using arping, use wicked's own implementation (bsc#1078245) Follow-up patch to "disable arping", requires wicked 0.6.46. * adds 0563-40network-collapse-arping-and-dhcp-calls-into-wicked.patch - Wicked: Properly add set gateway variable when using dhcp (bsc#1085614) * adds 0564-40network-Always-set-the-gw-variable.patch - Allow booting from block devices using intel vmd (bsc#1079924) * adds 0565-90kernel-modules-Include-Intel-Volume-Management-Dev.patch - Enable aarch64 and adds critical drivers of ARM platform (bsc#1084272) * adds 0562-Adjust-driver-list-to-modern-kernels.patch - 95iscsi: Add the qedi driver to driver list for iscsi boot * adds 0561-Add-the-qedi-driver-to-driver-list-for-iscsi-boot.patch - 90kernel-modules: Ensure PCI host modules are included (boo#1079924) * adds 0560-90kernel-modules-Ensure-PCI-host-modules-are-include.patch - 40network: Add wickedd duid.xml and iaid.xml if available (bsc#1022872, bsc#1082832) * adds 0559-Add-wickedd-duid.xml-and-iaid.xml-if-available.patch - 95qeth_rules: Fix file permissions (FATE#323440) OBS-URL: https://build.opensuse.org/request/show/587922 OBS-URL: https://build.opensuse.org/package/show/Base:System/dracut?expand=0&rev=346
145 lines
5.2 KiB
Diff
145 lines
5.2 KiB
Diff
From abb2c4123658ec5e9f7b21d92c80e1af7e879180 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Molkentin <dmolkentin@suse.com>
|
|
Date: Fri, 16 Feb 2018 11:51:18 +0100
|
|
Subject: [PATCH] 40network: collapse arping and dhcp calls into wicked binary
|
|
|
|
References: bsc#1078245
|
|
---
|
|
modules.d/40network/dhclient-script.sh | 6 ++----
|
|
modules.d/40network/ifup.sh | 25 ++++++++++++++++---------
|
|
modules.d/40network/module-setup.sh | 8 +++-----
|
|
modules.d/40network/net-lib.sh | 14 +++++++++-----
|
|
4 files changed, 30 insertions(+), 23 deletions(-)
|
|
|
|
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
|
|
index f8a558c7..fb9f5858 100755
|
|
--- a/modules.d/40network/dhclient-script.sh
|
|
+++ b/modules.d/40network/dhclient-script.sh
|
|
@@ -113,11 +113,9 @@ case $reason in
|
|
if [ -f /sys/class/net/$netif/device/layer2 ]; then
|
|
read layer2 < /sys/class/net/$netif/device/layer2
|
|
fi
|
|
- if ! which arping > /dev/null 2>&1 ; then
|
|
- layer2=0
|
|
- fi
|
|
if [ "$layer2" != "0" ]; then
|
|
- if ! arping -f -q -D -c 2 -I $netif $new_ip_address ; then
|
|
+ wicked arp verify $netif $new_ip_address 2>/dev/null
|
|
+ if [ $? -eq 4 ]; then
|
|
warn "Duplicate address detected for $new_ip_address while doing dhcp. retrying"
|
|
exit 1
|
|
fi
|
|
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
|
|
index 9775084e..a51b6a30 100755
|
|
--- a/modules.d/40network/ifup.sh
|
|
+++ b/modules.d/40network/ifup.sh
|
|
@@ -214,9 +214,9 @@ do_dhcp() {
|
|
else
|
|
ipv6_mode="managed"
|
|
fi
|
|
- dhclient="wickedd-dhcp6 --test --test-mode $ipv6_mode"
|
|
+ dhclient="wicked test dhcp6"
|
|
else
|
|
- dhclient="wickedd-dhcp4 --test"
|
|
+ dhclient="wicked test dhcp4"
|
|
fi
|
|
|
|
if ! linkup $netif; then
|
|
@@ -229,9 +229,8 @@ do_dhcp() {
|
|
[ -n "$mtu" ] && ip $1 link set mtu $mtu dev $netif
|
|
fi
|
|
|
|
- $dhclient --test-format leaseinfo --test-output /tmp/leaseinfo.${netif}.dhcp.ipv${1:1:1} --test-request - $netif << EOF
|
|
-<request type="lease"/>
|
|
-EOF
|
|
+ echo '<request type="lease"/>' > /tmp/request.${netif}.dhcp.ipv${1:1:1}
|
|
+ $dhclient --format leaseinfo --output /tmp/leaseinfo.${netif}.dhcp.ipv${1:1:1} --request /tmp/request.${netif}.dhcp.ipv${1:1:1} $netif
|
|
dhcp_apply $1 || return $?
|
|
|
|
if [ "$1" = "-6" ] ; then
|
|
@@ -329,10 +328,18 @@ if strglobin $ip '*:*:*'; then
|
|
wait_for_ipv6_dad $netif
|
|
[ "$gw" = "::" ] && gw=""
|
|
else
|
|
- if which arping > /dev/null 2>&1 -a ! arping -f -q -D -c 2 -I $netif $ip; then
|
|
- warn "Duplicate address detected for $ip for interface $netif."
|
|
- return 1
|
|
- fi
|
|
+ wicked arp verify --quiet $netif $ip 2>/dev/null
|
|
+ case "$?" in
|
|
+ 1)
|
|
+ info "$netif does not support ARP, cannot attempt to resolve $dest."
|
|
+ ;;
|
|
+ 4)
|
|
+ warn "Duplicate address detected for $ip for interface $netif."
|
|
+ return 1
|
|
+ ;;
|
|
+ *)
|
|
+ ;;
|
|
+ esac
|
|
# Assume /24 prefix for IPv4
|
|
[ -z "$prefix" ] && prefix=24
|
|
ip addr add $ip/$prefix ${srv:+peer $srv} brd + dev $netif
|
|
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
|
|
index 2dd3630c..023400ac 100755
|
|
--- a/modules.d/40network/module-setup.sh
|
|
+++ b/modules.d/40network/module-setup.sh
|
|
@@ -1,13 +1,12 @@
|
|
#!/bin/bash
|
|
|
|
-WICKEDD_DHCP_PATH="/usr/lib/wicked/bin"
|
|
WICKED_EXT_PATH="/etc/wicked/extensions"
|
|
|
|
# called by dracut
|
|
check() {
|
|
local _program
|
|
|
|
- require_binaries ip $WICKEDD_DHCP_PATH/wickedd-dhcp4 $WICKEDD_DHCP_PATH/wickedd-dhcp6 || return 1
|
|
+ require_binaries ip wicked || return 1
|
|
|
|
return 255
|
|
}
|
|
@@ -34,11 +33,10 @@ installkernel() {
|
|
install() {
|
|
local _arch _i _dir
|
|
inst_multiple ip hostname sed
|
|
- inst_multiple -o arping ping ping6
|
|
+ inst_multiple ping ping6
|
|
inst_multiple -o teamd teamdctl teamnl
|
|
+ inst_multiple wicked
|
|
inst_simple /etc/libnl/classid
|
|
- inst_simple "$WICKEDD_DHCP_PATH/wickedd-dhcp4" "/usr/sbin/wickedd-dhcp4"
|
|
- inst_simple "$WICKEDD_DHCP_PATH/wickedd-dhcp6" "/usr/sbin/wickedd-dhcp6"
|
|
inst_libdir_file "libwicked*.so.*"
|
|
inst_libdir_file "libdbus-1.so.*"
|
|
inst_script "$moddir/ifup.sh" "/sbin/ifup"
|
|
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
|
|
index c8ab84d0..b491f8e1 100755
|
|
--- a/modules.d/40network/net-lib.sh
|
|
+++ b/modules.d/40network/net-lib.sh
|
|
@@ -199,12 +199,16 @@ setup_net() {
|
|
read layer2 < /sys/class/net/$netif/device/layer2
|
|
fi
|
|
|
|
- if ! which arping > /dev/null 2>&1 ; then
|
|
- layer2=0
|
|
- fi
|
|
-
|
|
if [ "$layer2" != "0" ] && [ -n "$dest" ] && ! strstr "$dest" ":"; then
|
|
- arping -q -f -w 60 -I $netif $dest || info "Resolving $dest via ARP on $netif failed"
|
|
+ wicked arp ping --interval 3000 --replies 1 --timeout 60000 --quiet $netif $dest 2>/dev/null
|
|
+ case "$?" in
|
|
+ 0)
|
|
+ # Everything is ok
|
|
+ ;;
|
|
+ *)
|
|
+ info "Resolving $dest via ARP on $netif failed"
|
|
+ ;;
|
|
+ esac
|
|
fi
|
|
unset layer2
|
|
|
|
--
|
|
2.13.6
|
|
|