Enhance modem interface configuration with dynamic protocol assignment and improved checks

This commit is contained in:
fujr 2024-11-15 14:41:33 +08:00
parent fdcd83c8cf
commit 8b9b86b081

View File

@ -328,6 +328,8 @@ set_if()
dhcp_reload_flag=0 dhcp_reload_flag=0
network_reload_flag=0 network_reload_flag=0
#check if exist #check if exist
proto="dhcp"
protov6="dhcpv6"
case $manufacturer in case $manufacturer in
"quectel") "quectel")
case $platform in case $platform in
@ -341,11 +343,15 @@ set_if()
;; ;;
esac esac
;; ;;
"fibocom")
case $platform in
"mediatek")
proto="static"
protov6="static"
;;
esac
;;
esac esac
if [ -z "$proto" ];then
proto="dhcp"
protov6="dhcpv6"
fi
case $pdp_type in case $pdp_type in
"ip") "ip")
env4="1" env4="1"
@ -379,6 +385,7 @@ set_if()
fi fi
network_reload_flag=1 network_reload_flag=1
firewall_reload_flag=1 firewall_reload_flag=1
m_debug "create interface $interface_name with proto $proto and metric $metric"
fi fi
else else
if [ -n "$interface" ];then if [ -n "$interface" ];then
@ -405,6 +412,7 @@ set_if()
fi fi
network_reload_flag=1 network_reload_flag=1
firewall_reload_flag=1 firewall_reload_flag=1
m_debug "create interface $interface6_name with proto $protov6 and metric $metric"
fi fi
if [ "$ra_master" = "1" ];then if [ "$ra_master" = "1" ];then
uci set dhcp.${interface6_name}='dhcp' uci set dhcp.${interface6_name}='dhcp'
@ -472,11 +480,25 @@ set_if()
set_led "net" $modem_config $set_modem_netcard set_led "net" $modem_config $set_modem_netcard
origin_netcard=$(uci -q get network.$interface_name.ifname) origin_netcard=$(uci -q get network.$interface_name.ifname)
origin_device=$(uci -q get network.$interface_name.device) origin_device=$(uci -q get network.$interface_name.device)
if [ "$origin_netcard" == "$set_modem_netcard" ] && [ "$origin_device" == "$set_modem_netcard" ];then origin_metric=$(uci -q get network.$interface_name.metric)
origin_proto=$(uci -q get network.$interface_name.proto)
if [ "$origin_netcard" == "$set_modem_netcard" ] && [ "$origin_device" == "$set_modem_netcard" ] && [ "$origin_metric" == "$metric" ] && [ "$origin_proto" == "$proto" ];then
m_debug "interface $interface_name already set to $set_modem_netcard" m_debug "interface $interface_name already set to $set_modem_netcard"
else else
uci set network.${interface_name}.ifname="${set_modem_netcard}" uci set network.${interface_name}.ifname="${set_modem_netcard}"
uci set network.${interface_name}.device="${set_modem_netcard}" uci set network.${interface_name}.device="${set_modem_netcard}"
uci set network.${interface_name}.modem_config="${modem_config}"
if [ "$env4" -eq 1 ];then
uci set network.${interface_name}.proto="${proto}"
uci set network.${interface_name}.metric="${metric}"
uci add_list network.${interface_name}.dns='114.114.114.114'
uci add_list network.${interface_name}.dns='119.29.29.29'
uci add_list network.${interface_name}.dns='8.8.8.8'
fi
if [ "$env6" -eq 1 ];then
uci set network.${interface6_name}.proto="${protov6}"
uci set network.${interface6_name}.metric="${metric}"
fi
uci commit network uci commit network
ifup ${interface_name} ifup ${interface_name}
m_debug "set interface $interface_name to $set_modem_netcard" m_debug "set interface $interface_name to $set_modem_netcard"