ModemManager vs NetworkManager (and the overlap of functionality) : Best Practices

Aleksander Morgado aleksandermj at chromium.org
Wed Mar 15 11:34:21 UTC 2023


>
> As I understood it, NM was responsible for managing the modem itself, whereas MM would handle tasks like automatically failing over a wireless network to a cellular connection - but would rely on NM to manage the interface to the modem. But in this "simple" task there is some overlap/grey area - for example, a cellular data connection requires things like APNs, where should that fall? it seems it has landed in both NM and MM.
>

We should improve the documentation!

NM and MM do not overlap at all, they do completely different things!
There is absolutely nothing that MM does that NM could also do, and
the other way around.

MM talks exclusively with the control port of the modem, and allows
the modem to be prepared for a data connection (e.g. activate a
bearer/PDP context). NM does not touch the control port for anything.
NM is the one asking MM to connect the modem, and will setup the
actual IP data path (either PPP or static/DHCP over a net port).

NM could use ofono instead of MM for modem management, although not
sure how well supported that is nowadays.
In the same way, different network manager systems (not NM) could use
MM: e.g. netifd in openwrt or shill in ChromeOS both use ModemManager.

-- 
Aleksander


More information about the ModemManager-devel mailing list