umbim: pass ipXtable to child interfaces

Inspired by commti e51aa699f7, allow setting specific routing tables
via ip4table and ip6table options, by passing them on child interfaces
created by MBIM protocol handler.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
This commit is contained in:
Lech Perczak 2021-08-06 22:29:57 +02:00 committed by Hauke Mehrtens
parent e2655e0a6b
commit 9ddbcd73d8

View file

@ -31,8 +31,10 @@ _proto_mbim_setup() {
local tid=2 local tid=2
local ret local ret
local device apn pincode delay allow_roaming allow_partner dhcp dhcpv6 pdptype $PROTO_DEFAULT_OPTIONS local device apn pincode delay auth username password allow_roaming allow_partner
json_get_vars device apn pincode delay auth username password allow_roaming allow_partner dhcp dhcpv6 pdptype $PROTO_DEFAULT_OPTIONS local dhcp dhcpv6 pdptype ip4table ip6table $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
[ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6 [ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6
@ -201,6 +203,7 @@ _proto_mbim_setup() {
json_close_array json_close_array
proto_add_dynamic_defaults 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 json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"
elif [ "$dhcp" != 0 ]; then elif [ "$dhcp" != 0 ]; then
@ -211,6 +214,7 @@ _proto_mbim_setup() {
json_add_string proto "dhcp" json_add_string proto "dhcp"
proto_add_dynamic_defaults 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 json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"
fi fi
@ -231,6 +235,7 @@ _proto_mbim_setup() {
json_close_array json_close_array
proto_add_dynamic_defaults 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 json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"
elif [ "$dhcpv6" != 0 ]; then elif [ "$dhcpv6" != 0 ]; then
@ -242,6 +247,7 @@ _proto_mbim_setup() {
json_add_string extendprefix 1 json_add_string extendprefix 1
proto_add_dynamic_defaults 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 json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"
fi fi