# Configure the MTU for the interface mtu_dir="$state_dir/mtu" set_mtu() { local mtu=$1 if [ -w /sys/class/net/$interface/mtu ]; then echo "$mtu" >/sys/class/net/$interface/mtu else ifconfig "$interface" mtu "$mtu" fi } if [ "$reason" = PREINIT -a -e "$mtu_dir/$interface" ]; then rm "$mtu_dir/$interface" elif [ -n "$new_interface_mtu" ] && $if_up; then # The smalled MTU dhcpcd can work with is 576 if [ "$new_interface_mtu" -ge 576 ]; then if set_mtu "$new_interface_mtu"; then syslog info "MTU set to $new_interface_mtu" # Save the MTU so we can restore it later if [ ! -e "$mtu_dir/$interface" ]; then mkdir -p "$mtu_dir" echo "$ifmtu" > "$mtu_dir/$interface" fi fi fi elif [ -e "$mtu_dir/$interface" ]; then if $if_up || $if_down; then # No MTU in this state, so restore the prior MTU mtu=$(cat "$mtu_dir/$interface") syslog info "MTU restored to $mtu" set_mtu "$mtu" rm "$mtu_dir/$interface" fi fi