123456789101112131415161718192021222324252627282930313233343536373839 |
- # 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
|