mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-29 15:44:04 +00:00
umbim: handle MTU configuration
Allow setting interface MTU through UCI. If this is not set, use MBIM-provided MTU, if provided through control channel. If separate MTUs are provided for IPv4 and IPv6, apply larger of them. This is very unlikely and possible only for IPv4v6 dual-stack configuration. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
This commit is contained in:
parent
2bfbc2dbd8
commit
e4db21b413
@ -23,6 +23,7 @@ proto_mbim_init_config() {
|
||||
proto_config_add_boolean dhcp
|
||||
proto_config_add_boolean dhcpv6
|
||||
proto_config_add_string pdptype
|
||||
proto_config_add_int mtu
|
||||
proto_config_add_defaults
|
||||
}
|
||||
|
||||
@ -44,9 +45,9 @@ _proto_mbim_setup() {
|
||||
local ret
|
||||
|
||||
local device apn pincode delay auth username password allow_roaming allow_partner
|
||||
local dhcp dhcpv6 pdptype ip4table ip6table $PROTO_DEFAULT_OPTIONS
|
||||
local dhcp dhcpv6 pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS
|
||||
json_get_vars device apn pincode delay auth username password allow_roaming allow_partner
|
||||
json_get_vars dhcp dhcpv6 pdptype ip4table ip6table $PROTO_DEFAULT_OPTIONS
|
||||
json_get_vars dhcp dhcpv6 pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS
|
||||
|
||||
[ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6
|
||||
|
||||
@ -294,6 +295,19 @@ _proto_mbim_setup() {
|
||||
fi
|
||||
}
|
||||
|
||||
[ -z "$mtu" ] && {
|
||||
local ipv4mtu=$(_proto_mbim_get_field ipv4mtu "$mbimconfig")
|
||||
ipv4mtu="${ipv4mtu:-0}"
|
||||
local ipv6mtu=$(_proto_mbim_get_field ipv6mtu "$mbimconfig")
|
||||
ipv6mtu="${ipv6mtu:-0}"
|
||||
|
||||
mtu=$((ipv6mtu > ipv4mtu ? ipv6mtu : ipv4mtu))
|
||||
}
|
||||
[ -n "$mtu" -a "$mtu" != 0 ] && {
|
||||
echo Setting MTU of $ifname to $mtu
|
||||
/sbin/ip link set dev $ifname mtu $mtu
|
||||
}
|
||||
|
||||
uci_set_state network $interface tid "$tid"
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user