Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP1:GA
dracut.12460
0563-40network-collapse-arping-and-dhcp-calls-i...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0563-40network-collapse-arping-and-dhcp-calls-into-wicked.patch of Package dracut.12460
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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor