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:
parent
e2655e0a6b
commit
9ddbcd73d8
1 changed files with 8 additions and 2 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue