modemmanager: moving the openwrt related files to subdirectories
[feed/packages.git] / net / modemmanager / files / usr / lib / ModemManager / connection.d / 10-report-down
1 #!/bin/sh
2
3 # SPDX-License-Identifier: CC0-1.0
4 # 2022 Aleksander Morgado <aleksander@aleksander.es>
5 #
6 # Automatically report to netifd that the underlying modem
7 # is really disconnected
8 #
9 # require program name and at least 4 arguments
10 [ $# -lt 4 ] && exit 1
11
12 MODEM_PATH="$1"
13 BEARER_PATH="$2"
14 INTERFACE="$3"
15 STATE="$4"
16
17 [ "${STATE}" = "disconnected" ] || exit 0
18
19 . /lib/netifd/netifd-proto.sh
20 . /usr/share/ModemManager/modemmanager.common
21
22 MODEM_STATUS=$(mmcli --modem="${MODEM_PATH}" --output-keyvalue)
23 [ -n "${MODEM_STATUS}" ] || exit 1
24
25 MODEM_DEVICE=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.device")
26 [ -n "${MODEM_DEVICE}" ] || exit 2
27
28 CFG=$(mm_get_modem_config "${MODEM_DEVICE}")
29 [ -n "${CFG}" ] || exit 3
30
31 IFUP=$(ifstatus "${CFG}" | jsonfilter -e "@.up")
32
33 [ "${IFUP}" = "true" ] && {
34 logger -t "modemmanager" "interface ${CFG} (network device ${INTERFACE}) ${STATE}"
35 proto_init_update $INTERFACE 0
36 proto_send_update $CFG
37 }
38
39 exit 0