Common udev tags: ModemManager Reference Manual

## Common udev tags Common udev tags — generic udev tags supported |

## Types and Values

#define | ID_MM_CANDIDATE
#define | ID_MM_PHYSDEV_UID
#define | ID_MM_PORT_IGNORE
#define | ID_MM_DEVICE_PROCESS
#define | ID_MM_DEVICE_IGNORE
#define | ID_MM_DEVICE_MANUAL_SCAN_ONLY
#define | ID_MM_PLATFORM_DRIVER_PROBE
#define | ID_MM_PORT_TYPE_AT_PPP
#define | ID_MM_PORT_TYPE_AT_PRIMARY
#define | ID_MM_PORT_TYPE_AT_SECONDARY
#define | ID_MM_PORT_TYPE_GPS
#define | ID_MM_PORT_TYPE_QCDM
#define | ID_MM_TTY_BAUDRATE
#define | ID_MM_TTY_FLOW_CONTROL

## Description

This section defines generic udev tags that are used by ModemManager, associated to full devices or to specific ports in a given device.

## Functions

## Types and Values

### ID_MM_CANDIDATE

    #define ID_MM_CANDIDATE "ID_MM_CANDIDATE"

This is a port-specific tag added automatically when all other ModemManager related tags have already been set.

### ID_MM_PHYSDEV_UID

    #define ID_MM_PHYSDEV_UID "ID_MM_PHYSDEV_UID"

This is a device-specific tag that allows users to 'name' modem devices with a predefined 'unique ID' string.

When this tag is given per-port, the daemon will consider that all ports with the same UID value are associated to the same device. This is useful for e.g. modems that expose multiple RS232 ports connected to the system via different platform ports (or USB to RS232 adapters).

This UID is exposed in the 'Device' property and can then be used in mmcli calls to refer unequivocally to a specific device, regardless of its modem index, e.g.: $ mmcli --modem=UID ...

### ID_MM_PORT_IGNORE

    #define ID_MM_PORT_IGNORE "ID_MM_PORT_IGNORE"

This is a port-specific tag that allows explicitly ignoring a given port in a device.

This tag applies to all types of ports.

### ID_MM_DEVICE_PROCESS

    #define ID_MM_DEVICE_PROCESS "ID_MM_DEVICE_PROCESS"

This is a device-specific tag that allows explicitly requesting the processing of all ports exposed by the device. This tag is usually used by users when the daemon runs with WHITELIST-ONLY filter policy type, and is associated to the MM_FILTER_RULE_EXPLICIT_WHITELIST rule.

This tag may also be specified in specific ports, e.g. when the modem exposes a single platform port without any parent device.

### ID_MM_DEVICE_IGNORE

    #define ID_MM_DEVICE_IGNORE "ID_MM_DEVICE_IGNORE"

This is a device-specific tag that allows explicitly blacklisting devices that expose TTY devices so that they are never probed.

This tag is used when the daemon runs with DEFAULT or PARANOID filter policy type, and is associated to the MM_FILTER_RULE_TTY_BLACKLIST rule.

This tag is ignored when the STRICT filter policy is used.

### ID_MM_DEVICE_MANUAL_SCAN_ONLY

    #define ID_MM_DEVICE_MANUAL_SCAN_ONLY "ID_MM_DEVICE_MANUAL_SCAN_ONLY"

This is a device-specific tag that allows explicitly greylisting devices that expose TTY devices so that they are never probed automatically. Instead, an explicit manual scan request may be sent to the daemon so that the TTY ports exposed by the device are probed.

This tag is used when the daemon runs with DEFAULT or PARANOID filter policy type, and is associated to the MM_FILTER_RULE_TTY_MANUAL_SCAN_ONLY rule.

This tag is ignored when the STRICT filter policy is used.

### ID_MM_PLATFORM_DRIVER_PROBE

    #define ID_MM_PLATFORM_DRIVER_PROBE "ID_MM_PLATFORM_DRIVER_PROBE"

This is a port-specific tag applied to platform ports so that they are probed automatically by the daemon. Platform ports that don't have this tag will never probed. This tag is a bit redundant, as the user could also use ID_MM_DEVICE_PROCESS for the same purpose.

This tag is associated to the MM_FILTER_RULE_TTY_PLATFORM_DRIVER rule, which is only meaningful when the daemon runs with the DEFAULT filter policy type, as that is the only one that would allow probing all ports not explicitly forbidden before the last MM_FILTER_RULE_TTY_DEFAULT_ALLOWED rule.

### ID_MM_PORT_TYPE_AT_PPP

    #define ID_MM_PORT_TYPE_AT_PPP "ID_MM_PORT_TYPE_AT_PPP"

This is a port-specific tag applied to TTYs that we know in advance are AT ports to be used as data ports exclusively.

This tag will also prevent QCDM probing on the port.

### ID_MM_PORT_TYPE_AT_PRIMARY

    #define ID_MM_PORT_TYPE_AT_PRIMARY "ID_MM_PORT_TYPE_AT_PRIMARY"

This is a port-specific tag applied to TTYs that we know in advance are AT ports to be used as primary control ports.

This tag will also prevent QCDM probing on the port.

### ID_MM_PORT_TYPE_AT_SECONDARY

    #define ID_MM_PORT_TYPE_AT_SECONDARY "ID_MM_PORT_TYPE_AT_SECONDARY"

This is a port-specific tag applied to TTYs that we know in advance are AT ports to be used as secondary control ports.

This tag will also prevent QCDM probing on the port.

### ID_MM_PORT_TYPE_GPS

    #define ID_MM_PORT_TYPE_GPS "ID_MM_PORT_TYPE_GPS"

This is a port-specific tag applied to TTYs that we know in advance are GPS data ports where we expect to receive NMEA traces.

This tag also prevents AT and QCDM probing in the port.

### ID_MM_PORT_TYPE_QCDM

    #define ID_MM_PORT_TYPE_QCDM "ID_MM_PORT_TYPE_QCDM"

This is a port-specific tag applied to TTYs that we know in advance are QCDM ports.

The only purpose of this tag is to prevent AT probing in the port.

### ID_MM_TTY_BAUDRATE

    #define ID_MM_TTY_BAUDRATE "ID_MM_TTY_BAUDRATE"

This is a port-specific tag applied to TTYs that require a specific baudrate to work. USB modems will usually allow auto-bauding configuration, so this tag is really only meaningful to true RS232 devices.

The value of the tag should be the number of bauds per second to use when talking to the port, e.g. "115200". If not given, the default of 57600bps is assumed.

### ID_MM_TTY_FLOW_CONTROL

    #define ID_MM_TTY_FLOW_CONTROL "ID_MM_TTY_FLOW_CONTROL"

This is a port-specific tag applied to TTYs that require a specific flow control mechanism to work not only in data mode but also in control mode.

The value of the tag should be either 'none', 'xon-xoff' or 'rts-cts', and must be a flow control value supported by the device where it's configured. If not given, it is assumed that the TTYs don't require any specific flow control setting in command mode.