浏览代码

uqmi: pass-through ipXtable to child interfaces

Allow setting specific routing tables via the ip4table and ip6table
options also when ${ifname}_4 and ${ifname}_6 child interfaces are
being created.

Signed-off-by: Daniel Golle <[email protected]>
Daniel Golle 7 年之前
父节点
当前提交
e51aa699f7
共有 2 个文件被更改,包括 5 次插入2 次删除
  1. 1 1
      package/network/utils/uqmi/Makefile
  2. 4 1
      package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh

+ 1 - 1
package/network/utils/uqmi/Makefile

@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=uqmi
 PKG_NAME:=uqmi
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git

+ 4 - 1
package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh

@@ -29,9 +29,10 @@ proto_qmi_setup() {
 	local interface="$1"
 	local interface="$1"
 	local dataformat connstat
 	local dataformat connstat
 	local device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn $PROTO_DEFAULT_OPTIONS
 	local device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn $PROTO_DEFAULT_OPTIONS
+	local ip4table ip6table
 	local cid_4 pdh_4 cid_6 pdh_6
 	local cid_4 pdh_4 cid_6 pdh_6
 	local ip_6 ip_prefix_length gateway_6 dns1_6 dns2_6
 	local ip_6 ip_prefix_length gateway_6 dns1_6 dns2_6
-	json_get_vars device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn $PROTO_DEFAULT_OPTIONS
+	json_get_vars device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn ip4table ip6table $PROTO_DEFAULT_OPTIONS
 
 
 	[ "$metric" = "" ] && metric="0"
 	[ "$metric" = "" ] && metric="0"
 
 
@@ -252,6 +253,7 @@ proto_qmi_setup() {
 			json_add_string name "${interface}_6"
 			json_add_string name "${interface}_6"
 			json_add_string ifname "@$interface"
 			json_add_string ifname "@$interface"
 			json_add_string proto "dhcpv6"
 			json_add_string proto "dhcpv6"
+			[ -n "$ip6table" ] && json_add_string ip6table "$ip6table"
 			proto_add_dynamic_defaults
 			proto_add_dynamic_defaults
 			# RFC 7278: Extend an IPv6 /64 Prefix to LAN
 			# RFC 7278: Extend an IPv6 /64 Prefix to LAN
 			json_add_string extendprefix 1
 			json_add_string extendprefix 1
@@ -265,6 +267,7 @@ proto_qmi_setup() {
 		json_add_string name "${interface}_4"
 		json_add_string name "${interface}_4"
 		json_add_string ifname "@$interface"
 		json_add_string ifname "@$interface"
 		json_add_string proto "dhcp"
 		json_add_string proto "dhcp"
+		[ -n "$ip4table" ] && json_add_string ip4table "$ip4table"
 		proto_add_dynamic_defaults
 		proto_add_dynamic_defaults
 		json_close_object
 		json_close_object
 		ubus call network add_dynamic "$(json_dump)"
 		ubus call network add_dynamic "$(json_dump)"