comgt-ncm: fix setting ip[46]table and MTU
Some checks are pending
Build all core packages / Build all core packages for selected target (push) Waiting to run

The ncm proto handler ignored ip4table, ip6table, and mtu settings.

The fix is based on the existing code in the mbim proto handler.

Fixes: #20216.
Signed-off-by: Alexander Patrakov <patrakov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20217
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Alexander Patrakov 2025-09-28 03:59:41 +08:00 committed by Hauke Mehrtens
parent d34cef823e
commit b289edd84b

View file

@ -22,6 +22,7 @@ proto_ncm_init_config() {
proto_config_add_boolean sourcefilter
proto_config_add_boolean delegate
proto_config_add_int profile
proto_config_add_int mtu
proto_config_add_defaults
}
@ -30,8 +31,8 @@ proto_ncm_setup() {
local connect context_type devname devpath finalize ifpath initialize manufacturer setmode
local delegate sourcefilter $PROTO_DEFAULT_OPTIONS
json_get_vars delegate sourcefilter $PROTO_DEFAULT_OPTIONS
local delegate ip4table ip6table mtu sourcefilter $PROTO_DEFAULT_OPTIONS
json_get_vars delegate ip4table ip6table mtu sourcefilter $PROTO_DEFAULT_OPTIONS
local apn auth delay device ifname mode password pdptype pincode profile username
json_get_vars apn auth delay device ifname mode password pdptype pincode profile username
@ -192,9 +193,9 @@ proto_ncm_setup() {
json_add_string ifname "@$interface"
json_add_string proto "dhcp"
proto_add_dynamic_defaults
[ -n "$zone" ] && {
json_add_string zone "$zone"
}
[ -n "$zone" ] && json_add_string zone "$zone"
[ -n "$ip4table" ] && json_add_string ip4table "$ip4table"
json_close_object
ubus call network add_dynamic "$(json_dump)"
}
@ -208,13 +209,18 @@ proto_ncm_setup() {
[ "$delegate" = "0" ] && json_add_boolean delegate "0"
[ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0"
proto_add_dynamic_defaults
[ -n "$zone" ] && {
json_add_string zone "$zone"
}
[ -n "$zone" ] && json_add_string zone "$zone"
[ -n "$ip6table" ] && json_add_string ip6table "$ip6table"
json_close_object
ubus call network add_dynamic "$(json_dump)"
}
[ -n "$mtu" -a "$mtu" != 0 ] && {
echo "Setting MTU of $ifname to $mtu"
/sbin/ip link set dev $ifname mtu $mtu
}
[ -n "$finalize" ] && {
eval COMMAND="$finalize" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
echo "Failed to configure modem"