Modem filter

Filter rules
Filter policies

ModemManager will not probe all TTYs, NET and cdc-wdm ports found in the system, as this may end up interfering e.g. with TTYs that have nothing to do with modem devices.

The daemon comes with several predefined filter policies, each of them composed of one or more filter rules.

Filter rules

The device filter in ModemManager defines the following independent filter rules. The predefined filter policies are based on one or more of these predefined filter rules.

  • MM_FILTER_RULE_EXPLICIT_ALLOWLIST

    This filter allows users to manually tag devices and/or device ports with the ID_MM_DEVICE_PROCESS udev tag. If the filter finds this tag, the device and/or device ports will be automatically accepted and port probing will be allowed.

    $ sudo vim /lib/udev/rules.d/78-mm-allowlist-internal-modem.rules
        ACTION!="add|change|move", GOTO="mm_allowlist_internal_modem_end"
        ATTRS{idVendor}=="1199", ATTRS{idProduct}=="a001", ENV{ID_MM_DEVICE_PROCESS}="1"
        LABEL="mm_allowlist_internal_modem_end"
    // Apply new rules without reboot
    $ sudo udevadm control --reload
    $ sudo udevadm trigger
                
  • MM_FILTER_RULE_EXPLICIT_BLACKLIST

    This filter allows users to manually tag devices and/or device ports with the ID_MM_DEVICE_IGNORE udev tag. If the filter finds this tag, the device and/or device ports will be automatically ignored and port probing will be never run on them.

    $ sudo vim /lib/udev/rules.d/78-mm-blacklist-internal-modem.rules
        ACTION!="add|change|move", GOTO="mm_blacklist_internal_modem_end"
        ATTRS{idVendor}=="1199", ATTRS{idProduct}=="a001", ENV{ID_MM_DEVICE_IGNORE}="1"
        LABEL="mm_blacklist_internal_modem_end"
    // Apply new rules without reboot
    $ sudo udevadm control --reload
    $ sudo udevadm trigger
                
  • MM_FILTER_RULE_PLUGIN_ALLOWLIST

    This filter will automatically allowlist devices that are explicitly referenced by plugins, either with plugin-specific allowlist tags, with exact vid:pid matches, or just with vid matches.

  • MM_FILTER_RULE_QRTR

    This filter will automatically flag as allowed all QRTR nodes that have been notified as being modem management capable.

    This filter rule is available since 1.18.0.

  • MM_FILTER_RULE_VIRTUAL

    This filter will automatically flag as forbidden all ports exposed by virtual devices, like the 'lo' network interface or the tty0, tty1... virtual terminals. There is no reason to disable this filter, except for testing purposes.

  • MM_FILTER_RULE_NET

    This filter will automatically flag as allowed all network ports exposed by devices. Unless there is a will to explicitly forbid network ports, this filter should always be enabled.

  • MM_FILTER_RULE_USBMISC

    This filter will automatically flag as allowed all cdc-wdm ports exposed in the usbmisc subsystem. Unless there is a will to explicitly forbid the cdc-wdm ports exposed by qmi_wwan, cdc_mbim or huawei-cdc-ncm kernel drivers, this filter should always be enabled.

  • MM_FILTER_RULE_RPMSG

    This filter will automatically flag as allowed all rpmsg ports exposed in the rpmsg subsystem. Unless there is a will to explicitly forbid the rpmsg ports, this filter should always be enabled.

    This filter rule is available since 1.16.0.

  • MM_FILTER_RULE_WWAN

    This filter will automatically flag as allowed all wwan control ports exposed in the wwan subsystem. Unless there is a will to explicitly forbid the wwan control ports, this filter should always be enabled.

    This filter rule is available since 1.18.0.

  • MM_FILTER_RULE_TTY

    If the MM_FILTER_RULE_TTY filter is disabled, no TTY port will be allowed. If this filter is enabled, TTY ports will only be allowed if the TTY-specific filters (defined next) allow it.

  • MM_FILTER_RULE_TTY_PLATFORM_DRIVER

    If this filter is enabled, all platform TTY ports will be forbidden automatically.

  • MM_FILTER_RULE_TTY_DRIVER

    If this filter is enabled, all TTY ports managed by modem-specific kernel drivers will be allowed automatically.

  • FILTER_RULE_TTY_ACM_INTERFACE

    If this filter is enabled, all TTY ports managed by the cdc-acm kernel driver with class=2/subclass=2/protocol=1 (AT command capable ttyACM port) will be allowed automatically.

  • MM_FILTER_RULE_TTY_WITH_NET

    If this filter is enabled, all TTY ports for devices that also expose a network interface port will be allowed automatically.

  • MM_FILTER_RULE_TTY_DEFAULT_FORBIDDEN

    This rule is the implicit one defining what happens when a TTY port isn't explicitly accepted by any of the TTY-specific filters; i.e. the TTY port will be forbidden.

The following filter rules have been deprecated and are no longer used.

  • MM_FILTER_RULE_TTY_BLACKLIST

    Deprecated in 1.18.0.

  • MM_FILTER_RULE_TTY_MANUAL_SCAN_ONLY

    Deprecated in 1.18.0.