[PATCH] filter: cdc-acm protocols 1 through 6 are all AT-capable
Dan Williams
dcbw at redhat.com
Thu Jan 18 17:07:32 UTC 2018
On Thu, 2018-01-18 at 16:33 +0100, Aleksander Morgado wrote:
> As per USB-IF "Class definitions for Communication Devices 1.2" docs.
LGTM.
Dan
> Reported-by: Iván Sánchez Ortega <ivan at sanchezortega.es>
> ---
> src/mm-filter.c | 20 ++++++++++++++++++--
> 1 file changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/src/mm-filter.c b/src/mm-filter.c
> index ca0241a0..6526cfaa 100644
> --- a/src/mm-filter.c
> +++ b/src/mm-filter.c
> @@ -134,12 +134,28 @@ mm_filter_port (MMFilter *self,
> return TRUE;
> }
>
> - /* If the TTY kernel driver is cdc-acm and the interface is
> class=2/subclass=2/protocol=1, allow it */
> + /*
> + * If the TTY kernel driver is cdc-acm and the interface is
> class=2/subclass=2/protocol=[1-6], allow it.
> + *
> + * Class definitions for Communication Devices 1.2
> + * Communications Interface Class Control Protocol Codes:
> + * 00h | USB specification | No class specific
> protocol required
> + * 01h | ITU-T V.250 | AT Commands: V.250 etc
> + * 02h | PCCA-101 | AT Commands defined by
> PCCA-101
> + * 03h | PCCA-101 | AT Commands defined by
> PCCA-101 & Annex O
> + * 04h | GSM 7.07 | AT Commands defined by
> GSM 07.07
> + * 05h | 3GPP 27.07 | AT Commands defined by
> 3GPP 27.007
> + * 06h | C-S0017-0 | AT Commands defined by
> TIA for CDMA
> + * 07h | USB EEM | Ethernet Emulation
> Model
> + * 08h-FDh | | RESERVED (future use)
> + * FEh | | External Protocol:
> Commands defined by Command Set Functional Descriptor
> + * FFh | USB Specification | Vendor-specific
> + */
> if ((self->priv->enabled_rules &
> MM_FILTER_RULE_TTY_ACM_INTERFACE) &&
> (!g_strcmp0 (driver, "cdc_acm")) &&
> (mm_kernel_device_get_interface_class (port) == 2) &&
> (mm_kernel_device_get_interface_subclass (port) == 2) &&
> - (mm_kernel_device_get_interface_protocol (port) == 1)) {
> + (mm_kernel_device_get_interface_protocol (port) >= 1) &&
> (mm_kernel_device_get_interface_protocol (port) <= 6)) {
> mm_dbg ("[filter] (%s/%s): port allowed: cdc-acm
> interface reported AT-capable", subsystem, name);
> return TRUE;
> }
More information about the ModemManager-devel
mailing list