some nic's loose the carrier after setting new mtu.
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
--- /dev/null
+# Configure the MTU for the interface
+
+eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
+
+set_mtu()
+{
+ local mtu=$1
+ ip link set "$interface" mtu "$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 ..."
+ ip link set "$interface" down
+ ip link set "$interface" up
+ fi
+}
+if [ -n "$new_interface_mtu" ] && $if_up; then
+ if [ $RED_DHCP_FORCE_MTU -ge 576 ]; then
+ new_interface_mtu=$RED_DHCP_FORCE_MTU
+ fi
+ if [ ! "$new_interface_mtu" == "$ifmtu" ]; then
+ # The smalled MTU dhcpcd can work with is 576
+ if [ "$new_interface_mtu" -gt 576 ]; then
+ if set_mtu "$new_interface_mtu"; then
+ syslog info "MTU set to $new_interface_mtu"
+ fi
+ fi
+ fi
+fi
+
etc/system-release
etc/issue
etc/rc.d/init.d/firewall
+etc/rc.d/init.d/networking/dhcpcd.exe
etc/modprobe.d/nf_conntrack.conf
srv/web/ipfire/cgi-bin/logs.cgi/firewalllog.dat
srv/web/ipfire/cgi-bin/logs.cgi/firewalllogcountry.dat
usr/bin/pgrep
usr/local/bin/qosctrl
usr/local/bin/timectrl
+var/ipfire/dhcpc/dhcpcd-hooks/10-mtu
rm -f $(CONFIG_ROOT)/dhcpc/dhcpcd-hooks/50-yp.conf
rm -f $(CONFIG_ROOT)/dhcpc/dhcpcd-hooks/50-ypbind
- sed -i -e "s|-ge 576|-gt 576|g" $(CONFIG_ROOT)/dhcpc/dhcpcd-hooks/10-mtu
-
install -m 644 $(DIR_SRC)/config/dhcpc/dhcpcd.conf $(CONFIG_ROOT)/dhcpc/
+ install -m 444 $(DIR_SRC)/config/dhcpc/dhcpcd-hooks/10-mtu $(CONFIG_ROOT)/dhcpc/dhcpcd-hooks
+
chown root:root $(CONFIG_ROOT)/dhcpc/dhcpcd.conf
@rm -rf $(DIR_APP)
# Only if RED_TYPE=DHCP update /var/ipfire/red
if [ "$RED_TYPE" == "DHCP" ]; then
- #Force MTU option for KabelDeutschland because this ISP
- #set the MTU to 576 instead of the supportet 1500
- if [ $RED_DHCP_FORCE_MTU -ge 576 ]; then
- logger -p local0.info -t dhcpcd.exe[$$] "Force mtu to $RED_DHCP_FORCE_MTU"
- ip link set $interface mtu $RED_DHCP_FORCE_MTU
- fi
-
#Check if we have to restart the services at update
[ ! -e "/var/ipfire/red/active" ] && update=1;
if [ "$old_domain_name_service" != "$new_domain_name_service" ]; then