dhcpcd: 10-mtu break if carrier was lost

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>
This commit is contained in:
Arne Fitzenreiter
2019-11-30 22:21:42 +01:00
parent 4775d54ba6
commit f938083fb5
2 changed files with 26 additions and 16 deletions

View 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

View 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
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
else
echo ""
echo_ok
boot_mesg "DHCP for ${device} still running..."
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
else
echo ""
$(exit "${ret}")