umbim: pass ipXtable to child interfaces
authorLech Perczak <lech.perczak@gmail.com>
Fri, 6 Aug 2021 20:29:57 +0000 (22:29 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 29 Apr 2023 19:33:04 +0000 (21:33 +0200)
Inspired by commti e51aa699f7ca, 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>
package/network/utils/umbim/files/lib/netifd/proto/mbim.sh

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