1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366
|
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* ModemManager Interface Specification
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
* Copyright (C) 2018 Aleksander Morgado <aleksander@aleksander.es>
*/
/*
* NOTE! this file is NOT part of the installed ModemManager API.
*
* We keep this file under include/ because we want to build and
* expose the associated documentation.
*/
#ifndef MM_TAGS_H
#define MM_TAGS_H
/**
* SECTION:mm-tags
* @short_description: generic udev tags supported
*
* This section defines generic udev tags that are used by ModemManager,
* associated to full devices or to specific ports in a given device.
*/
/**
* ID_MM_CANDIDATE:
*
* This is a port-specific tag added automatically when all other
* ModemManager related tags have already been set.
*
* Since: 1.10
*/
#define ID_MM_CANDIDATE "ID_MM_CANDIDATE"
/**
* 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 '<link linkend="gdbus-property-org-freedesktop-ModemManager1-Modem.Device">Device</link>'
* 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 ...
*
* Since: 1.10
*/
#define ID_MM_PHYSDEV_UID "ID_MM_PHYSDEV_UID"
/**
* 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 ALLOWLIST-ONLY filter policy
* type, and is associated to the MM_FILTER_RULE_EXPLICIT_ALLOWLIST rule.
*
* This tag may also be specified in specific ports, e.g. when the modem
* exposes a single platform port without any parent device.
*
* Since: 1.10
*/
#define ID_MM_DEVICE_PROCESS "ID_MM_DEVICE_PROCESS"
/**
* ID_MM_DEVICE_IGNORE:
*
* This is a device-specific tag that allows explicitly requesting to
* ignore all ports exposed by the device.
*
* This tag was originally applicable to TTY ports and only when running
* in certain filter policy types. Since 1.12, this tag applies to all
* filter types and to all port types (not only TTYs), and is associated
* to the MM_FILTER_RULE_EXPLICIT_BLOCKLIST rule.
*
* Since: 1.10
*/
#define ID_MM_DEVICE_IGNORE "ID_MM_DEVICE_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.
*
* Since: 1.10
*/
#define ID_MM_PORT_IGNORE "ID_MM_PORT_IGNORE"
/**
* 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.
*
* Since: 1.10
*/
#define ID_MM_PORT_TYPE_AT_PRIMARY "ID_MM_PORT_TYPE_AT_PRIMARY"
/**
* 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.
*
* Since: 1.10
*/
#define ID_MM_PORT_TYPE_AT_SECONDARY "ID_MM_PORT_TYPE_AT_SECONDARY"
/**
* ID_MM_PORT_TYPE_AT_GPS_CONTROL:
*
* This is a port-specific tag applied to TTYs that we know in advance
* are AT ports to be used for GPS control. Depending on the device,
* this may or may not mean the same port is also used fo GPS data.
*
* This tag will also prevent QCDM probing on the port.
*
* Since: 1.20
*/
#define ID_MM_PORT_TYPE_AT_GPS_CONTROL "ID_MM_PORT_TYPE_AT_GPS_CONTROL"
/**
* 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.
*
* Since: 1.10
*/
#define ID_MM_PORT_TYPE_AT_PPP "ID_MM_PORT_TYPE_AT_PPP"
/**
* 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.
*
* Since: 1.10
*/
#define ID_MM_PORT_TYPE_QCDM "ID_MM_PORT_TYPE_QCDM"
/**
* 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.
*
* Since: 1.10
*/
#define ID_MM_PORT_TYPE_GPS "ID_MM_PORT_TYPE_GPS"
/**
* ID_MM_PORT_TYPE_AUDIO:
*
* This is a port-specific tag applied to TTYs that we know in advance
* are audio ports.
*
* This tag also prevents AT and QCDM probing in the port.
*
* Since: 1.12
*/
#define ID_MM_PORT_TYPE_AUDIO "ID_MM_PORT_TYPE_AUDIO"
/**
* ID_MM_PORT_TYPE_QMI:
*
* This is a port-specific tag applied to generic ports that we know in advance
* are QMI ports.
*
* This tag will also prevent other types of probing (e.g. AT, MBIM) on the
* port.
*
* This tag is not required for QMI ports exposed by the qmi_wwan driver.
*
* Since: 1.16
*/
#define ID_MM_PORT_TYPE_QMI "ID_MM_PORT_TYPE_QMI"
/**
* ID_MM_PORT_TYPE_MBIM:
*
* This is a port-specific tag applied to generic ports that we know in advance
* are MBIM ports.
*
* This tag will also prevent other types of probing (e.g. AT, QMI) on the
* port.
*
* This tag is not required for MBIM ports exposed by the cdc_mbim driver.
*
* Since: 1.16
*/
#define ID_MM_PORT_TYPE_MBIM "ID_MM_PORT_TYPE_MBIM"
/**
* ID_MM_PORT_TYPE_XMMRPC:
*
* This is a port-specific tag applied to generic ports that we know in advance
* are RPC control ports for Intel XMM modems.
*
* This tag will also prevent other types of probing (e.g. AT, QMI) on the
* port.
*
* Since: 1.24
*/
#define ID_MM_PORT_TYPE_XMMRPC "ID_MM_PORT_TYPE_XMMRPC"
/**
* 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.
*
* Since: 1.10
*/
#define ID_MM_TTY_BAUDRATE "ID_MM_TTY_BAUDRATE"
/**
* 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.
*
* Since: 1.10
*/
#define ID_MM_TTY_FLOW_CONTROL "ID_MM_TTY_FLOW_CONTROL"
/**
* ID_MM_REQUIRED:
*
* This is a port-specific tag that allows users to specify that the modem
* must be able to successfully probe and use the given control port.
*
* If this tag is set and the port probing procedure fails, the modem object
* will not be created, which is the same as if the port didn't exist in the
* first place.
*
* E.g. this tag may be set on a QMI control port if we want to make sure the
* modem object exposed by ModemManager is QMI-capable and never an AT-based
* modem created due to falling back on a failed QMI port probing procedure.
*
* Since: 1.22
*/
#define ID_MM_REQUIRED "ID_MM_REQUIRED"
/**
* ID_MM_MAX_MULTIPLEXED_LINKS:
*
* This is a device-specific tag that allows users to specify the maximum amount
* of multiplexed links the modem supports.
*
* An integer value greater or equal than 0 must be given. The value 0 in this
* tag completely disables the multiplexing support in the device.
*
* This setting does nothing if the modem doesn't support multiplexing, or if the
* value configured is greater than the one specified by the modem itself (e.g.
* the control protocol in use also limits this value).
*
* Since: 1.22
*/
#define ID_MM_MAX_MULTIPLEXED_LINKS "ID_MM_MAX_MULTIPLEXED_LINKS"
/**
* ID_MM_TTY_AT_PROBE_TRIES:
*
* For ports that require a longer time to become ready to respond to AT
* commands, this tag specifies maximum number of AT probes to try as an
* integer between 1 and 20 (inclusive). Each probe attempt has a three-second
* timeout before the next probe is tried. Values outside the allowed range
* will be clamped to the min/max.
*
* Plugins implementing custom initialization without opting into this tag
* will ignore it.
*
* Since: 1.24
*/
#define ID_MM_TTY_AT_PROBE_TRIES "ID_MM_TTY_AT_PROBE_TRIES"
/*
* The following symbols are deprecated. We don't add them to -compat
* because this -tags file is not really part of the installed API.
*/
#ifndef MM_DISABLE_DEPRECATED
/**
* ID_MM_TTY_BLACKLIST:
*
* This was a device-specific tag that allowed explicitly blacklisting
* devices that exposed TTY devices so that they were never probed.
*
* This tag was applicable only when running in certain filter policy types,
* and is no longer used since 1.18.
*
* Since: 1.12
* Deprecated: 1.18.0
*/
#define ID_MM_TTY_BLACKLIST "ID_MM_TTY_BLACKLIST"
/**
* ID_MM_TTY_MANUAL_SCAN_ONLY:
*
* This was a device-specific tag that allowed explicitly allowlisting
* devices that exposed TTY devices so that they were never probed
* automatically. Instead, an explicit manual scan request could
* be sent to the daemon so that the TTY ports exposed by the device
* were probed.
*
* This tag was applicable only when running in certain filter policy types,
* and is no longer used since 1.18.
*
* Since: 1.12
* Deprecated: 1.18.0
*/
#define ID_MM_TTY_MANUAL_SCAN_ONLY "ID_MM_TTY_MANUAL_SCAN_ONLY"
#endif
#endif /* MM_TAGS_H */
|