aboutsummaryrefslogtreecommitdiff
path: root/src/mm-context.c
AgeCommit message (Collapse)Author
2023-04-14daemon: update copyrightAleksander Morgado
2023-01-03build: new option to build plugins within the daemon binaryAleksander Morgado
Instead of creating libmm-plugin* and libmm-shared* libraries that are dlopen()-ed on runtime, allow incorporating all plugins into the daemon binary itself. This makes the startup of the daemon much faster and also avoids issues with builds that require linker namespace isolation. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/674
2022-11-15context: include MSG log level in --helpAleksander Morgado
2022-11-07build: disable Test interface in base manager if building without testsAleksander Morgado
There is no real need for this interface if tests are not being built.
2022-10-19core: update copyright yearsAleksander Morgado
2022-06-09suspend: add suspend/resume support with powerd on ChromeOSRukun Mao
ModemManager handles suspend and resume signals sent from powerd Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/547
2022-04-20mm-log: hiding personal info while loggingsom
During mm logging, some of the information like simIccId, Telephone numbers need to be hidden from displaying in the logs to protect some of the user information. Implemented for MBIM requiring libmbim 1.27.6, which is the development version that includes the needed API.
2021-12-26core: new '--test-mbimex-profile-management' optionAleksander Morgado
The profile management APIs implemented by Microsoft in the MBIM extensions provide certain features that are not available via other means (e.g. ip type, access type preference, roaming allowance...). Unfortunately, these APIs require the current list of profiles installed in the modem to be a bit special; e.g. with one profile max for each context/APN type. If this does not happen, the operations will fail, or they will update contexts that should not be updated. So, we disable for now the MBIM extension profile management support; the logic is there, but not used by default.
2021-11-04core: replace 'whitelist' with 'allowlist' and 'blacklist' with 'blocklist'Aleksander Morgado
We keep the 'WHITELIST-ONLY' filter type name still as an option in --filter-policy=[POLICY], but deprecated and with the better 'ALLOWLIST-ONLY' replacement suggested from now on.
2021-08-09core: new '--test-multiplex-requested' optionAleksander Morgado
The new option will change the default setting in MBIM and QMI bearers to "request" when no explicit "multiplex" configuration is given by the user. This option will help test the multiplexing support in the modems before it's made a default in a future release.
2021-06-16core: dump fatal initialization errors to stderrAleksander Morgado
2021-06-16filter: remove LEGACY and PARANOID filter typesAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/390
2021-05-26base-manager: add quick suspend/resume baseDylan Van Assche
Quick suspend/resume infrastructure for synchronizing the interfaces when resuming.
2021-04-14context: allow disabling QRTR on runtime even if support is builtAleksander Morgado
2021-02-14context: add test-no-suspend-resume cli parameterDylan Van Assche
Disables suspend/resume support at runtime. This is useful for modems which are never turned off or suspended when the host suspends.
2021-01-17core: update copyright years to 2021Aleksander Morgado
2020-11-14base-manager: allow forcing the testing without udevAleksander Morgado
Even if udev support is really built and available. This is extremely useful to test the udev-less setup without fully recompiling the whole daemon. E.g.: the daemon can be run like this: $ sudo /usr/sbin/ModemManager --debug --test-no-udev And then, the kernel events may be reported using mmcli like this: $ sudo mmcli --report-kernel-event-auto-scan
2020-06-01filter: 'strict' is the new defaultAleksander Morgado
The 'strict' filter policy is less invasive, as it will not touch TTYs unless there are clear indications that it may be a modem. Under this mode, the ModemManager-provided blacklist database is not used.
2020-06-01filter: rename 'default' to 'legacy'Aleksander Morgado
The old 'default' policy is renamed to 'legacy', and is considered now deprecated.
2020-03-21context: remove empty whiteline in --versionAleksander Morgado
This also fixes the Copyright section in the troffit generated HTML output.
2020-03-21context: add ':' to the section titlesAleksander Morgado
So that --help-all print all sections in the same way as the Help and Application option groups.
2020-01-03build: bump copyright years to 2020Aleksander Morgado
2019-01-11build: update copyright years to 2019Aleksander Morgado
2017-12-05filter: new automatic whitelisting rules and strict/paranoid policiesAleksander Morgado
The 'default' filter policy was based on blacklisting as much as possible and otherwise allow. The new 'strict' filter policy will be based on whitelisting as much as much as possible, using custom defined rules, and otherwise forbid the ports. The new 'paranoid' filter policy is equivalent to the 'strict' filter after having applied the blacklist rules from the 'default' filter.
2017-12-05filter: allow selection of filter policy on startupAleksander Morgado
Added a new '--filter-policy=[POLICY]' option in the daemon, which allows selecting between the supported filter policies. For now, only two policies are defined: * default: the default policy used by ModemManager, where it tries to probe and detect as many modem ports as possible. * whitelist-only: only devices explicitly tagged via udev (with the ID_MM_DEVICE_PROCESS tag) will be probed and used.
2017-06-22build: WITH_UDEV is only defined when enabledAleksander Morgado
Looks like the preprocessor doesn't choke when using #if WITH_UDEV and it isn't defined to any value, but anyway, better explicitly say that we're checking if it's defined or not.
2017-06-22build: only define WITH_SYSTEMD_JOURNAL if enabledAleksander Morgado
2017-06-21log: Add support for journal loggingTorsten Hilbrich
This logging is available if the software was build with the configure option --with-systemd-journal. It will be enabled by default if libsystemd is found. The runtime parameter --log-journal enables to output of log messages to the systemd journal. Please note that the journal priority field has the same value as the syslog level so no conversion is required here.
2017-05-29context: rework application options and help outputAleksander Morgado
Group together all options that allow configuring the logging output, and make them have the same --log-[XXX] prefix. Also rework the --help output so that all option groups are printed by default (i.e. there is no longer a --help-all option).
2016-09-29core: allow building and running without udevAleksander Morgado
Instead of relying on the udev daemon and GUDev to manage the devices reported by the kernel, we can now run ModemManager relying solely on the kernel events reported via the new ReportKernelEvent() API. Therefore, the '--no-auto-scan' option is implicit for the ModemManager daemon when udev is disabled in the build. Additionally, a new custom implementation of the kernel device object is provided, which uses sysfs to load the properties and attributes required in each kernel device, instead of using a GUdevDevice. The udev rule files are kept in place, and a simple custom parser is provided which preloads all rules in memory once and then applies them to the different kernel objects reported via ReportKernelEvent(), e.g. to set port type hints. A simple unit test setup is prepared to validate the udev rules during the `check' Makefile target.
2016-09-29core: allow disabling auto-scan and notifying ports one by one via APIAleksander Morgado
This commit enables a new core ModemManager daemon option, so that automatic detection of available modems is totally disabled: '--no-auto-scan'. Note that this option also replaces the previously used '--test-no-auto-scan' option, which was only used during tests. Along with the new ModemManager option, a new ReportKernelEvent() method in the API is defined, which allows notifying the daemon of which interfaces it should be accessing, as well as the main details of each interface. The only mandatory parameters in the new method are 'action' (add/remove), 'name' (the name of the interface) and 'subsystem' (the subsystem of the interface). The mmcli tool has support for using the new api method via several new options: * The '--report-kernel-event' option allows specifying device ports one by one, and is a direct mapping of the ReportKernelEvent() method: $ sudo mmcli --report-kernel-event="action=add,name=wwan0,subsystem=net" $ sudo mmcli --report-kernel-event="action=add,name=cdc-wdm0,subsystem=usbmisc" * The '--report-kernel-event-auto-scan' option uses udev monitoring to notify events automatically to the daemon. This allows to operate in a way equivalent to the default daemon operation (with implicit auto-scan). Worth noting that the ReportKernelEvent() method is only usable when '--no-auto-scan' is explicitly used in the daemon. An error will be reported if the method is tried while standard udev monitoring is enabled (implicit if auto scan isn't explicitly disabled in the daemon). If mmcli is going to be used only to report 'real time' events, an optional '--initial-kernel-events=[PATH]' may be given in the ModemManager call to automatically process a set of port kernel events one by one on boot. The file may e.g. contain: action=add,name=wwan0,subsystem=net action=add,name=cdc-wdm0,subsystem=usbmisc
2016-07-26build: updated copyright years up to 2016Aleksander Morgado
2016-03-27context: use G_OPTION_ARG_FILENAME when a file path is expectedAleksander Morgado
2016-03-27context: fix --help outputAleksander Morgado
The options that require an argument should explicitly specify so. Before: --log-level=INFO Log level: one of [ERR, WARN, INFO, DEBUG] --log-file Path to log file After: --log-level=[LEVEL] Log level: one of ERR, WARN, INFO, DEBUG --log-file=[PATH] Path to log file
2014-09-05core: add --version option to the ModemManager daemonAleksander Morgado
It was actually included in the man page of the daemon, but we didn't have it.
2014-02-13context: new '--test-plugin-dir' to allow specifying where the plugins areAleksander Morgado
2014-02-13context: new '--test-enable' to enable the Test interfaceAleksander Morgado
2014-02-13context: new '--test-no-auto-scan' to avoid automatic scanning for devicesAleksander Morgado
2014-02-13context: new '--test-session' allows launching the MM daemon in the session busAleksander Morgado
2012-03-16context: new source files to keep the daemon contextAleksander Morgado