1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-14 19:41:51 +00:00

Update modemmanager, libmbim and libqmi

This commit is contained in:
Ycarus (Yannick Chabanois) 2023-01-13 17:53:14 +01:00
parent a496b2affc
commit 6ca6ba2244
10 changed files with 169 additions and 127 deletions

View file

@ -8,28 +8,27 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=libmbim PKG_NAME:=libmbim
PKG_VERSION:=1.26.4 PKG_SOURCE_VERSION:=1.28.2
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://www.freedesktop.org/software/libmbim PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/libmbim.git
PKG_HASH:=f688cec4c4586a17575f5e327448ce62f2000ef6a07c9e4589873d4a68568ad9 PKG_MIRROR_HASH:=0b0b46016738fc22355d5a58c8a2d1b2f04906c49c51a50b57a09640d13b00b7
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com> PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/meson.mk
CONFIGURE_ARGS += \ TARGET_CFLAGS += -ffunction-sections -fdata-sections -fno-merge-all-constants -fmerge-constants
--disable-static \ TARGET_LDFLAGS += -Wl,--gc-sections
--disable-gtk-doc \
--disable-gtk-doc-html \ MESON_ARGS += \
--disable-gtk-doc-pdf \ -Dintrospection=false \
--disable-silent-rules \ -Dman=false \
--enable-more-warnings=yes -Dbash_completion=false \
-Db_lto=true
define Package/libmbim define Package/libmbim
SECTION:=libs SECTION:=libs
@ -56,10 +55,6 @@ define Package/mbim-utils
LICENSE_FILES:=COPYING LICENSE_FILES:=COPYING
endef endef
CONFIGURE_ARGS += \
--without-udev \
--without-udev-base-dir
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include $(INSTALL_DIR) $(1)/usr/include
$(CP) \ $(CP) \
@ -78,11 +73,15 @@ define Build/InstallDev
endef endef
define Package/libmbim/install define Package/libmbim/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) \
$(1)/usr/lib \
$(1)/usr/libexec
$(CP) \ $(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libmbim*.so.* \ $(PKG_INSTALL_DIR)/usr/lib/libmbim*.so.* \
$(1)/usr/lib/ $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/mbim-proxy $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/libexec/mbim-proxy $(1)/usr/libexec/
endef endef
define Package/mbim-utils/install define Package/mbim-utils/install

View file

@ -13,4 +13,19 @@ config LIBQMI_WITH_QRTR_GLIB
help help
Compile libqmi with QRTR support Compile libqmi with QRTR support
choice
prompt "Select QMI message collection to build"
default LIBQMI_COLLECTION_BASIC
config LIBQMI_COLLECTION_MINIMAL
depends on !MODEMMANAGER_WITH_QMI
bool "minimal"
config LIBQMI_COLLECTION_BASIC
bool "basic (default)"
config LIBQMI_COLLECTION_FULL
bool "full"
endchoice
endmenu endmenu

View file

@ -8,20 +8,21 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=libqmi PKG_NAME:=libqmi
PKG_VERSION:=1.30.8 PKG_SOURCE_VERSION:=1.32.2
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://www.freedesktop.org/software/libqmi PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/libqmi.git
PKG_HASH:=862482ce9e3ad0bd65d264334ee311cdb94b9df2863b5b7136309b41b8ac1990 PKG_MIRROR_HASH:=711d16d75a6a9afaefcf2be1bc845a4a6181dff786dfbd079e41e91279a0be91
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com> PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/meson.mk
TARGET_CFLAGS += -ffunction-sections -fdata-sections -fno-merge-all-constants -fmerge-constants
TARGET_LDFLAGS += -Wl,--gc-sections
define Package/libqmi/config define Package/libqmi/config
source "$(SOURCE)/Config.in" source "$(SOURCE)/Config.in"
@ -59,28 +60,16 @@ define Package/libqmi-utils/description
Utils to talk to QMI enabled modems Utils to talk to QMI enabled modems
endef endef
CONFIGURE_ARGS += \ MESON_ARGS += \
--disable-static \ -Dudev=false \
--disable-gtk-doc \ -Dintrospection=false \
--disable-gtk-doc-html \ -Dman=false \
--disable-gtk-doc-pdf \ -Dbash_completion=false \
--disable-silent-rules \ -Db_lto=true \
--enable-firmware-update \ -Dmbim_qmux=$(if $(CONFIG_LIBQMI_WITH_MBIM_QMUX),true,false) \
--enable-more-warnings=yes \ -Dqrtr=$(if $(CONFIG_LIBQMI_WITH_QRTR_GLIB),true,false) \
--without-udev \ -Dcollection=$(if $(CONFIG_LIBQMI_COLLECTION_MINIMAL),minimal\
--without-udev-base-dir ,$(if $(CONFIG_LIBQMI_COLLECTION_BASIC),basic,full))
ifeq ($(CONFIG_LIBQMI_WITH_MBIM_QMUX),y)
CONFIGURE_ARGS += --enable-mbim-qmux
else
CONFIGURE_ARGS += --disable-mbim-qmux
endif
ifeq ($(CONFIG_LIBQMI_WITH_QRTR_GLIB),y)
CONFIGURE_ARGS += --enable-qrtr
else
CONFIGURE_ARGS += --disable-qrtr
endif
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include $(INSTALL_DIR) $(1)/usr/include
@ -100,12 +89,15 @@ define Build/InstallDev
endef endef
define Package/libqmi/install define Package/libqmi/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) \
$(1)/usr/lib \
$(1)/usr/libexec
$(CP) \ $(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libqmi*.so.* \ $(PKG_INSTALL_DIR)/usr/lib/libqmi*.so.* \
$(1)/usr/lib/ $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/qmi-proxy $(1)/usr/lib/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/libexec/qmi-proxy $(1)/usr/libexec/
endef endef
define Package/qmi-utils/install define Package/qmi-utils/install

View file

@ -1,21 +1,30 @@
menu "Configuration" menu "Configuration"
depends on PACKAGE_modemmanager depends on PACKAGE_modemmanager
config MODEMMANAGER_WITH_MBIM config MODEMMANAGER_WITH_MBIM
bool "Include MBIM support" bool "Include MBIM support"
default y default y
help help
Compile ModemManager with MBIM support Compile ModemManager with MBIM support
config MODEMMANAGER_WITH_QMI config MODEMMANAGER_WITH_QMI
bool "Include QMI support" bool "Include QMI support"
default y default y
help help
Compile ModemManager with QMI support Compile ModemManager with QMI support
config MODEMMANAGER_WITH_QRTR
bool "Include QRTR support"
default y
depends on MODEMMANAGER_WITH_QMI
select LIBQMI_WITH_QRTR_GLIB
help
Compile ModemManager with QRTR support
config MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS
bool "Allow AT commands via DBus"
default n
help
Compile ModemManager allowing AT commands without debug flag
config MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS
bool "Allow AT commands via DBus"
default n
help
Compile ModemManager allowing AT commands without debug flag
endmenu endmenu

View file

@ -8,23 +8,25 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=modemmanager PKG_NAME:=modemmanager
PKG_VERSION:=1.18.12 PKG_SOURCE_VERSION:=1.20.2
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=ModemManager-$(PKG_VERSION).tar.xz PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://www.freedesktop.org/software/ModemManager PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
PKG_HASH:=b464e4925d955a6ca86dd08616e763b26ae46d7fd37dbe281678e34065b1e430 PKG_MIRROR_HASH:=f138effc693456c5040ec22e17c0a8b41143c3b17b62437462995c297a9150dc
PKG_BUILD_DIR:=$(BUILD_DIR)/ModemManager-$(PKG_VERSION)
PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au> PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
PKG_LICENSE:=GPL-2.0-or-later PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING PKG_LICENSE_FILES:=COPYING
PKG_INSTALL:=1 PKG_BUILD_DEPENDS:=glib2/host libxslt/host
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/meson.mk
TARGET_CFLAGS += -ffunction-sections -fdata-sections -fno-merge-all-constants -fmerge-constants
TARGET_LDFLAGS += -Wl,--gc-sections
define Package/modemmanager/config define Package/modemmanager/config
source "$(SOURCE)/Config.in" source "$(SOURCE)/Config.in"
@ -41,7 +43,8 @@ define Package/modemmanager
+dbus \ +dbus \
+ppp \ +ppp \
+MODEMMANAGER_WITH_MBIM:libmbim \ +MODEMMANAGER_WITH_MBIM:libmbim \
+MODEMMANAGER_WITH_QMI:libqmi +MODEMMANAGER_WITH_QMI:libqmi \
+MODEMMANAGER_WITH_QRTR:libqrtr-glib
endef endef
define Package/modemmanager/description define Package/modemmanager/description
@ -50,35 +53,22 @@ define Package/modemmanager/description
Select Utilities/usb-modeswitch if needed. Select Utilities/usb-modeswitch if needed.
endef endef
CONFIGURE_ARGS += \ MESON_ARGS += \
--without-polkit \ -Dudev=false \
--without-udev \ -Dudevdir=/lib/udev \
--without-systemdsystemunitdir \ -Dtests=false \
--disable-rpath \ -Dsystemdsystemunitdir=no \
--disable-gtk-doc -Dsystemd_suspend_resume=false \
-Dsystemd_journal=false \
ifeq ($(CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS),y) -Dpolkit=no \
CONFIGURE_ARGS += --with-at-command-via-dbus -Dintrospection=false \
endif -Dman=false \
-Dbash_completion=false \
ifdef CONFIG_MODEMMANAGER_WITH_MBIM -Db_lto=true \
CONFIGURE_ARGS += --with-mbim -Dmbim=$(if $(CONFIG_MODEMMANAGER_WITH_MBIM),true,false) \
else -Dqmi=$(if $(CONFIG_MODEMMANAGER_WITH_QMI),true,false) \
CONFIGURE_ARGS += --without-mbim -Dqrtr=$(if $(CONFIG_MODEMMANAGER_WITH_QRTR),true,false) \
endif -Dat_command_via_dbus=$(if $(CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS),true,false)
ifdef CONFIG_MODEMMANAGER_WITH_QMI
CONFIGURE_ARGS += --with-qmi
else
CONFIGURE_ARGS += --without-qmi
endif
define Build/Prepare
$(call Build/Prepare/Default)
( cd "$(PKG_BUILD_DIR)"; \
printf "all:\ninstall:\n" >po/Makefile.in.in; \
)
endef
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/ModemManager $(INSTALL_DIR) $(1)/usr/include/ModemManager
@ -110,6 +100,9 @@ define Package/modemmanager/install
$(CP) $(PKG_INSTALL_DIR)/usr/lib/ModemManager/libmm-shared-*.so* $(1)/usr/lib/ModemManager $(CP) $(PKG_INSTALL_DIR)/usr/lib/ModemManager/libmm-shared-*.so* $(1)/usr/lib/ModemManager
$(CP) $(PKG_INSTALL_DIR)/usr/lib/ModemManager/libmm-plugin-*.so* $(1)/usr/lib/ModemManager $(CP) $(PKG_INSTALL_DIR)/usr/lib/ModemManager/libmm-plugin-*.so* $(1)/usr/lib/ModemManager
$(INSTALL_DIR) $(1)/usr/lib/ModemManager/connection.d
$(INSTALL_BIN) ./files/10-report-down $(1)/usr/lib/ModemManager/connection.d
$(INSTALL_DIR) $(1)/etc/dbus-1/system.d $(INSTALL_DIR) $(1)/etc/dbus-1/system.d
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/org.freedesktop.ModemManager1.conf $(1)/etc/dbus-1/system.d $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/org.freedesktop.ModemManager1.conf $(1)/etc/dbus-1/system.d
@ -120,6 +113,9 @@ define Package/modemmanager/install
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/ModemManager/*.conf $(1)/usr/share/ModemManager $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/ModemManager/*.conf $(1)/usr/share/ModemManager
$(INSTALL_DATA) ./files/modemmanager.common $(1)/usr/share/ModemManager $(INSTALL_DATA) ./files/modemmanager.common $(1)/usr/share/ModemManager
$(INSTALL_DIR) $(1)/usr/share/ModemManager/fcc-unlock.available.d
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/ModemManager/fcc-unlock.available.d/* $(1)/usr/share/ModemManager/fcc-unlock.available.d
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/modemmanager.init $(1)/etc/init.d/modemmanager $(INSTALL_BIN) ./files/modemmanager.init $(1)/etc/init.d/modemmanager

View file

@ -0,0 +1,35 @@
#!/bin/sh
# SPDX-License-Identifier: CC0-1.0
# 2022 Aleksander Morgado <aleksander@aleksander.es>
#
# Automatically report to netifd that the underlying modem
# is really disconnected
#
# require program name and at least 4 arguments
[ $# -lt 4 ] && exit 1
MODEM_PATH="$1"
BEARER_PATH="$2"
INTERFACE="$3"
STATE="$4"
[ "${STATE}" = "disconnected" ] || exit 0
. /usr/share/ModemManager/modemmanager.common
. /lib/netifd/netifd-proto.sh
INCLUDE_ONLY=1 . /lib/netifd/proto/modemmanager.sh
MODEM_STATUS=$(mmcli --modem="${MODEM_PATH}" --output-keyvalue)
[ -n "${MODEM_STATUS}" ] || exit 1
MODEM_DEVICE=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.device")
[ -n "${MODEM_DEVICE}" ] || exit 2
CFG=$(mm_get_modem_config "${MODEM_DEVICE}")
[ -n "${CFG}" ] || exit 3
logger -t "modemmanager" "interface ${CFG} (network device ${INTERFACE}) ${STATE}"
proto_init_update $INTERFACE 0
proto_send_update $CFG
exit 0

View file

@ -12,7 +12,7 @@
mkdir -m 0755 -p "${MODEMMANAGER_RUNDIR}" mkdir -m 0755 -p "${MODEMMANAGER_RUNDIR}"
# Report network interface # Report network interface
mm_log "${ACTION} network interface ${INTERFACE}: event processed" mm_log "info" "${ACTION} network interface ${INTERFACE}: event processed"
mm_report_event "${ACTION}" "${INTERFACE}" "net" "/sys${DEVPATH}" mm_report_event "${ACTION}" "${INTERFACE}" "net" "/sys${DEVPATH}"
# Look for an associated cdc-wdm interface # Look for an associated cdc-wdm interface
@ -26,6 +26,6 @@ esac
# Report cdc-wdm device, if any # Report cdc-wdm device, if any
[ -n "${cdcwdm}" ] && { [ -n "${cdcwdm}" ] && {
mm_log "${ACTION} cdc interface ${cdcwdm}: custom event processed" mm_log "info" "${ACTION} cdc interface ${cdcwdm}: custom event processed"
mm_report_event "${ACTION}" "${cdcwdm}" "usbmisc" "/sys${DEVPATH}" mm_report_event "${ACTION}" "${cdcwdm}" "usbmisc" "/sys${DEVPATH}"
} }

View file

@ -12,5 +12,5 @@
mkdir -m 0755 -p "${MODEMMANAGER_RUNDIR}" mkdir -m 0755 -p "${MODEMMANAGER_RUNDIR}"
# Report TTY # Report TTY
mm_log "${ACTION} serial interface ${DEVNAME}: event processed" mm_log "info" "${ACTION} serial interface ${DEVNAME}: event processed"
mm_report_event "${ACTION}" "${DEVNAME}" "tty" "/sys${DEVPATH}" mm_report_event "${ACTION}" "${DEVNAME}" "tty" "/sys${DEVPATH}"

View file

@ -11,5 +11,5 @@
mkdir -m 0755 -p "${MODEMMANAGER_RUNDIR}" mkdir -m 0755 -p "${MODEMMANAGER_RUNDIR}"
# Report wwan # Report wwan
mm_log "${ACTION} wwan control port ${DEVNAME}: event processed" mm_log "info" "${ACTION} wwan control port ${DEVNAME}: event processed"
mm_report_event "${ACTION}" "${DEVNAME}" "wwan" "/sys${DEVPATH}" mm_report_event "${ACTION}" "${DEVNAME}" "wwan" "/sys${DEVPATH}"

28
modemmanager/files/modemmanager.proto Executable file → Normal file
View file

@ -156,8 +156,8 @@ modemmanager_connected_method_ppp_ipv4() {
novj \ novj \
noauth \ noauth \
$authopts \ $authopts \
${username:+ user $username} \ ${username:+ user "$username"} \
${password:+ password $password} \ ${password:+ password "$password"} \
lcp-echo-failure 5 \ lcp-echo-failure 5 \
lcp-echo-interval 15 \ lcp-echo-interval 15 \
lock \ lock \
@ -197,7 +197,6 @@ modemmanager_connected_method_dhcp_ipv4() {
local interface="$1" local interface="$1"
local wwan="$2" local wwan="$2"
local metric="$3" local metric="$3"
local defaultroute="$4"
proto_init_update "${wwan}" 1 proto_init_update "${wwan}" 1
proto_set_keep 1 proto_set_keep 1
@ -223,7 +222,6 @@ modemmanager_connected_method_static_ipv4() {
local dns1="$7" local dns1="$7"
local dns2="$8" local dns2="$8"
local metric="$9" local metric="$9"
local defaultroute="$10"
local mask="" local mask=""
@ -244,9 +242,8 @@ modemmanager_connected_method_static_ipv4() {
proto_set_keep 1 proto_set_keep 1
echo "adding IPv4 address ${address}, netmask ${mask}" echo "adding IPv4 address ${address}, netmask ${mask}"
proto_add_ipv4_address "${address}" "${mask}" proto_add_ipv4_address "${address}" "${mask}"
[ -n "${gateway}" ] && [ "${defaultroute}" != 0 ] && { [ -n "${gateway}" ] && {
echo "adding default IPv4 route via ${gateway}" echo "adding default IPv4 route via ${gateway}"
logger -t "modemmanager.proto" "adding default IPv4 route via ${gateway} ${address}"
proto_add_ipv4_route "0.0.0.0" "0" "${gateway}" "${address}" proto_add_ipv4_route "0.0.0.0" "0" "${gateway}" "${address}"
} }
[ -n "${dns1}" ] && { [ -n "${dns1}" ] && {
@ -265,7 +262,6 @@ modemmanager_connected_method_dhcp_ipv6() {
local interface="$1" local interface="$1"
local wwan="$2" local wwan="$2"
local metric="$3" local metric="$3"
local defaultroute="$4"
proto_init_update "${wwan}" 1 proto_init_update "${wwan}" 1
proto_set_keep 1 proto_set_keep 1
@ -292,7 +288,6 @@ modemmanager_connected_method_static_ipv6() {
local dns1="$7" local dns1="$7"
local dns2="$8" local dns2="$8"
local metric="$9" local metric="$9"
local defaultroute="$10"
[ -n "${address}" ] || { [ -n "${address}" ] || {
proto_notify_error "${interface}" ADDRESS_MISSING proto_notify_error "${interface}" ADDRESS_MISSING
@ -311,7 +306,7 @@ modemmanager_connected_method_static_ipv6() {
echo "adding IPv6 address ${address}, prefix ${prefix}" echo "adding IPv6 address ${address}, prefix ${prefix}"
proto_add_ipv6_address "${address}" "128" proto_add_ipv6_address "${address}" "128"
proto_add_ipv6_prefix "${address}/${prefix}" proto_add_ipv6_prefix "${address}/${prefix}"
[ -n "${gateway}" ] && [ "$defaultroute" != 0 ] && { [ -n "${gateway}" ] && {
echo "adding default IPv6 route via ${gateway}" echo "adding default IPv6 route via ${gateway}"
proto_add_ipv6_route "${gateway}" "128" proto_add_ipv6_route "${gateway}" "128"
proto_add_ipv6_route "::0" "0" "${gateway}" "" "" "${address}/${prefix}" proto_add_ipv6_route "::0" "0" "${gateway}" "" "" "${address}/${prefix}"
@ -362,9 +357,9 @@ proto_modemmanager_setup() {
local device apn allowedauth username password pincode iptype metric signalrate local device apn allowedauth username password pincode iptype metric signalrate
local address prefix gateway mtu dns1 dns2 defaultroute local address prefix gateway mtu dns1 dns2
json_get_vars device apn allowedauth username password pincode iptype metric signalrate defaultroute json_get_vars device apn allowedauth username password pincode iptype metric signalrate
# validate sysfs path given in config # validate sysfs path given in config
[ -n "${device}" ] || { [ -n "${device}" ] || {
@ -452,7 +447,7 @@ proto_modemmanager_setup() {
echo "IPv4 connection setup required in interface ${interface}: ${bearermethod_ipv4}" echo "IPv4 connection setup required in interface ${interface}: ${bearermethod_ipv4}"
case "${bearermethod_ipv4}" in case "${bearermethod_ipv4}" in
"dhcp") "dhcp")
modemmanager_connected_method_dhcp_ipv4 "${interface}" "${beareriface}" "${metric}" "${defaultroute}" modemmanager_connected_method_dhcp_ipv4 "${interface}" "${beareriface}" "${metric}"
;; ;;
"static") "static")
address=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.address") address=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.address")
@ -461,7 +456,7 @@ proto_modemmanager_setup() {
mtu=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.mtu") mtu=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.mtu")
dns1=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.dns.value\[1\]") dns1=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.dns.value\[1\]")
dns2=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.dns.value\[2\]") dns2=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.dns.value\[2\]")
modemmanager_connected_method_static_ipv4 "${interface}" "${beareriface}" "${address}" "${prefix}" "${gateway}" "${mtu}" "${dns1}" "${dns2}" "${metric}" "${defaultroute}" modemmanager_connected_method_static_ipv4 "${interface}" "${beareriface}" "${address}" "${prefix}" "${gateway}" "${mtu}" "${dns1}" "${dns2}" "${metric}"
;; ;;
"ppp") "ppp")
modemmanager_connected_method_ppp_ipv4 "${interface}" "${beareriface}" "${username}" "${password}" "${allowedauth}" modemmanager_connected_method_ppp_ipv4 "${interface}" "${beareriface}" "${username}" "${password}" "${allowedauth}"
@ -479,7 +474,7 @@ proto_modemmanager_setup() {
echo "IPv6 connection setup required in interface ${interface}: ${bearermethod_ipv6}" echo "IPv6 connection setup required in interface ${interface}: ${bearermethod_ipv6}"
case "${bearermethod_ipv6}" in case "${bearermethod_ipv6}" in
"dhcp") "dhcp")
modemmanager_connected_method_dhcp_ipv6 "${interface}" "${beareriface}" "${metric}" "${defaultroute}" modemmanager_connected_method_dhcp_ipv6 "${interface}" "${beareriface}" "${metric}"
;; ;;
"static") "static")
address=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv6-config.address") address=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv6-config.address")
@ -488,7 +483,7 @@ proto_modemmanager_setup() {
mtu=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv6-config.mtu") mtu=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv6-config.mtu")
dns1=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv6-config.dns.value\[1\]") dns1=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv6-config.dns.value\[1\]")
dns2=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv6-config.dns.value\[2\]") dns2=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv6-config.dns.value\[2\]")
modemmanager_connected_method_static_ipv6 "${interface}" "${beareriface}" "${address}" "${prefix}" "${gateway}" "${mtu}" "${dns1}" "${dns2}" "${metric}" "${defaultroute}" modemmanager_connected_method_static_ipv6 "${interface}" "${beareriface}" "${address}" "${prefix}" "${gateway}" "${mtu}" "${dns1}" "${dns2}" "${metric}"
;; ;;
"ppp") "ppp")
proto_notify_error "${interface}" "unsupported method" proto_notify_error "${interface}" "unsupported method"
@ -520,7 +515,8 @@ proto_modemmanager_teardown() {
modemstatus=$(mmcli --modem="${device}" --output-keyvalue) modemstatus=$(mmcli --modem="${device}" --output-keyvalue)
bearerpath=$(modemmanager_get_field "${modemstatus}" "modem.generic.bearers.value\[1\]") bearerpath=$(modemmanager_get_field "${modemstatus}" "modem.generic.bearers.value\[1\]")
[ -n "${bearerpath}" ] || { [ -n "${bearerpath}" ] || {
echo "couldn't load bearer path" echo "couldn't load bearer path: disconnecting anyway"
mmcli --modem="${device}" --simple-disconnect >/dev/null 2>&1
return return
} }