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"
+# Only set interface MTU on either a DHCP option recieved or a static
+# configuration for IPv4 which is wrapped in the DHCP setup.
+# IPv6 MTU is done via routing.
+if [ "$ifsuffix" = ".dhcp" ]; then
+ 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
- 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"
+ 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
fi