network: do not arping with qeth layer3 interfaces
authorHarald Hoyer <harald@redhat.com>
Tue, 29 May 2012 15:38:18 +0000 (17:38 +0200)
committerHarald Hoyer <harald@redhat.com>
Tue, 29 May 2012 15:39:17 +0000 (17:39 +0200)
https://bugzilla.redhat.com/show_bug.cgi?id=825783

modules.d/40network/dhclient-script.sh
modules.d/40network/net-lib.sh

index dd893c1..470444e 100755 (executable)
@@ -66,10 +66,17 @@ case $reason in
         ;;
     BOUND)
         echo "dhcp: BOND setting $netif"
-        if ! arping -q -D -c 2 -I $netif $new_ip_address ; then
-            warn "Duplicate address detected for $new_ip_address while doing dhcp. retrying"
-            exit 1
+        unset layer2
+        if [ -f /sys/class/net/$netif/device/layer2 ]; then
+            read layer2 < /sys/class/net/$netif/device/layer2
         fi
+        if [ "$layer2" != "0" ]; then
+            if ! arping -q -D -c 2 -I $netif $new_ip_address ; then
+                warn "Duplicate address detected for $new_ip_address while doing dhcp. retrying"
+                exit 1
+            fi
+        fi
+        unset layer2
         setup_interface
         set | while read line; do
             [ "${line#new_}" = "$line" ] && continue
index 75ad5e3..7157cd5 100644 (file)
@@ -95,9 +95,17 @@ setup_net() {
     else
         dest="$gw_ip"
     fi
-    if [ -n "$dest" ] && ! arping -q -f -w 60 -I $netif $dest ; then
+
+    unset layer2
+    if [ -f /sys/class/net/$netif/device/layer2 ]; then
+        read layer2 < /sys/class/net/$netif/device/layer2
+    fi
+
+    if [ "$layer2" != "0" ] && [ -n "$dest" ] && ! arping -q -f -w 60 -I $netif $dest ; then
         info "Resolving $dest via ARP on $netif failed"
     fi
+    unset layer2
+
     > /tmp/net.$netif.did-setup
 }