]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
dhcpcd: 10-mtu break if carrier was lost
authorArne Fitzenreiter <arne_f@ipfire.org>
Sat, 30 Nov 2019 21:21:42 +0000 (22:21 +0100)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sat, 30 Nov 2019 21:21:42 +0000 (22:21 +0100)
some nic's like Intel e1000e needs a reinit to change the
mtu. In this case the dhcp hook reinit the nic and terminate now
to let the dhcpcd reinit the card in backgrounnd without running the
rest of the hooks.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
config/dhcpc/dhcpcd-hooks/10-mtu
src/initscripts/networking/functions.network

index 49e05192ba1c6dbea9deea7b901790511bd4f23e..8eb429751422604f54c0fd0bfd9e48205c585a19 100644 (file)
@@ -10,11 +10,13 @@ set_mtu()
        # test for buggy nic that lose link at mtu set...
        carrier=`cat /sys/class/net/$interface/carrier`
        if [ "$carrier" == "0" ]; then
-               syslog info "Warning! Carrier loss after MTU set. Reinit ..."
+               syslog info "Warning! Carrier loss after MTU set. Reinit needed..."
                ip link set "$interface" down
                ip link set "$interface" up
+               exit 1
        fi
 }
+
 if [ -n "$new_interface_mtu" ] && $if_up; then
        if [ $RED_DHCP_FORCE_MTU -ge 576 ]; then
                new_interface_mtu=$RED_DHCP_FORCE_MTU
index 1af3482df48df17bb8a362cb2185a4d1852a36cb..17191e7a9cec497dd0359728ed3f3c8dfdbfc23c 100644 (file)
@@ -80,24 +80,32 @@ dhcpcd_start() {
 
        if [ "${ret}" -eq 0 ]; then
                . /var/ipfire/dhcpc/dhcpcd-"${device}".info
-               echo ""
-               echo_ok
-               boot_mesg "           DHCP Assigned Settings for ${device}:"
-               boot_mesg_flush
-               boot_mesg "           IP Address:      $ip_address"
-               boot_mesg_flush
 
-               if [ -n "${RED_DHCP_HOSTNAME}" ]; then
-                       boot_mesg "           Hostname:        $RED_DHCP_HOSTNAME"
+                       if [ $ip_address ]; then
+                       echo ""
+                       echo_ok
+                       boot_mesg "           DHCP Assigned Settings for ${device}:"
                        boot_mesg_flush
-               fi
+                       boot_mesg "           IP Address:      $ip_address"
+                       boot_mesg_flush
+
+                       if [ -n "${RED_DHCP_HOSTNAME}" ]; then
+                               boot_mesg "           Hostname:        $RED_DHCP_HOSTNAME"
+                               boot_mesg_flush
+                       fi
 
-               boot_mesg "           Subnet Mask:     $subnet_mask"
-               boot_mesg_flush
-               boot_mesg "           Default Gateway: $routers"
-               boot_mesg_flush
-               boot_mesg "           DNS Server:      $domain_name_servers"
-               boot_mesg_flush
+                       boot_mesg "           Subnet Mask:     $subnet_mask"
+                       boot_mesg_flush
+                       boot_mesg "           Default Gateway: $routers"
+                       boot_mesg_flush
+                       boot_mesg "           DNS Server:      $domain_name_servers"
+                       boot_mesg_flush
+               else
+                       echo ""
+                       echo_ok
+                       boot_mesg "DHCP for ${device} still running..."
+                       boot_mesg_flush
+               fi
        else
                echo ""
                $(exit "${ret}")