packages/net/modemmanager
Aleksander Morgado ab061c8ddd modemmanager: remove 2s timeout before reporting cached events
When ModemManager is started on boot we may end up with hotplug events
reported directly to the daemon, plus some others already cached in
the cache file before the daemon was started.

If the cached events correspond to the same device that is still
notifying ports directly, we may end up with a modem object created
before the cached events have been emitted, so the modem may not
handle all control/data ports it should.

E.g.:

  - modem detected
  - hotplug event for wwan0 port, cached as MM not running
  - hotplug event for cdc-wdm0 port, cached as MM not running
  - hotplug event for ttyUSB0, cached as MM not running
  - MM starts
  - hotplug event for ttyUSB1, directly processed as MM is running
  - hotplug event for ttyUSB2, directly processed as MM is running
  - modem object created with ttyUSB1 and ttyUSB2
  - 2s after MM starts, cached events for wwan0, cdc-wdm0 and ttyUSB0
    happen, but are ignored because the modem object has already been
    created

MM expects that ports of the same device are reported with less than
1500ms in between ports. In other words, if ports are reported more
than 1500ms after the last reported port, they may get ignored.

If we remove the 2s timeout, the report of the cached events will
happen as soon as MM starts, which makes it much more likely to happen
in the timeslot that MM expects for ports of the same device reported.
The logic is still not perfect, and we may also need to increase that
1500ms timeout inside MM, but removing the 2s timeout right away here
makes sense.

This 2s timeout was introduced along with the new wrapper launcher for
the daemon, it didn't exist before.

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
2022-01-13 15:54:02 -08:00
..
files modemmanager: remove 2s timeout before reporting cached events 2022-01-13 15:54:02 -08:00
Config.in modemmanager: added new proto options 2020-08-13 12:56:31 +03:00
Makefile ModemManager: refactoring procd init script 2021-12-06 14:49:43 +01:00
README.md modemmanager: added new proto options 2020-08-13 12:56:31 +03:00

OpenWrt ModemManager

Description

Cellular modem control and connectivity

Optional libraries libmbim and libqmi are available. Your modem may require additional kernel modules and/or the usb-modeswitch package.

Usage

Once installed, you can configure the 2G/3G/4G modem connections directly in /etc/config/network as in the following example:

config interface 'broadband'
    option device      '/sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2.1'
    option proto       'modemmanager'
    option apn         'ac.vodafone.es'
    option allowedauth 'pap chap'
    option username    'vodafone'
    option password    'vodafone'
    option pincode     '7423'
    option iptype      'ipv4'
    option lowpower    '1'
    option signalrate  '30'

Only 'device' and 'proto' are mandatory options, the remaining ones are all optional.

The 'allowedauth' option allows limiting the list of authentication protocols. It is given as a space-separated list of values, including any of the following: 'pap', 'chap', 'mschap', 'mschapv2' or 'eap'. It will default to allowing all protocols.

The 'iptype' option supports any of these values: 'ipv4', 'ipv6' or 'ipv4v6'. It will default to 'ipv4' if not given.

The 'signalrate' option set's the signal refresh rate (in seconds) for the device. You can call signal info with command: mmcli -m 0 --signal-get