not able to receive any indications using libqmi on Linaro

Dan Williams dcbw at redhat.com
Tue Dec 6 23:09:09 UTC 2016


On Tue, 2016-12-06 at 11:00 -0800, Shilpa Velamuri wrote:
> Thank You for the reply.
> 
> Here is the output of running the test program you sent:

Ok, your device really isn't providing indications for some reason.
 Are you able to contact your vendor and ask about it?  Does your
device provide more than one cdc-wdmX port?

Dan

> 
> [DEBUG]  [/dev/cdc-wdm0] Opening device with flags 'version-info,
> proxy'...
> [DEBUG]  [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 28
> <<<<<<   data   =
> 01:1B:00:00:00:00:00:01:00:FF:10:00:01:0D:00:2F:64:65:76:2F:63:64:63:
> 2D:77:64:6D:30
> 
> [DEBUG]  [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 27
> <<<<<<   flags   = 0x00
> <<<<<<   service = "ctl"
> <<<<<<   client  = 0
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 1
> <<<<<<   tlv_length  = 16
> <<<<<<   message     = "Internal Proxy Open" (0xFF00)
> <<<<<< TLV:
> <<<<<<   type       = "Device Path" (0x01)
> <<<<<<   length     = 13
> <<<<<<   value      = 2F:64:65:76:2F:63:64:63:2D:77:64:6D:30
> <<<<<<   translated = /dev/cdc-wdm0
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > RAW:
> > > > > > >   length = 19
> > > > > > >   data   =
> > > > > > > 01:12:00:00:00:00:01:01:00:FF:07:00:02:04:00:00:00:00:00
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message (translated)...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > QMUX:
> > > > > > >   length  = 18
> > > > > > >   flags   = 0x00
> > > > > > >   service = "ctl"
> > > > > > >   client  = 0
> > > > > > > QMI:
> > > > > > >   flags       = "response"
> > > > > > >   transaction = 1
> > > > > > >   tlv_length  = 7
> > > > > > >   message     = "Internal Proxy Open" (0xFF00)
> > > > > > > TLV:
> > > > > > >   type       = "Result" (0x02)
> > > > > > >   length     = 4
> > > > > > >   value      = 00:00:00:00
> > > > > > >   translated = SUCCESS
> 
> [DEBUG]  [/dev/cdc-wdm0] Checking version info (10 retries)...
> [DEBUG]  [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 12
> <<<<<<   data   = 01:0B:00:00:00:00:00:02:21:00:00:00
> 
> [DEBUG]  [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 11
> <<<<<<   flags   = 0x00
> <<<<<<   service = "ctl"
> <<<<<<   client  = 0
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 2
> <<<<<<   tlv_length  = 0
> <<<<<<   message     = "Get Version Info" (0x0021)
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > RAW:
> > > > > > >   length = 158
> > > > > > >   data   =
> 01:9D:00:80:00:00:01:02:21:00:92:00:02:04:00:00:00:00:00:01:88:00:1B:
> 00:01:00:05:00:01:01:00:24:00:02:01:00:0E:00:03:01:00:19:00:04:01:00:
> 03:00:05:01:00:0A:00:06:01:00:00:00:07:01:00:02:00:08:01:00:02:00:09:
> 02:00:01:00:0A:02:00:10:00:0B:01:00:19:00:0C:01:00:04:00:0F:01:00:00:
> 00:11:01:00:00:00:12:01:00:00:00:17:01:00:00:00:18:01:00:00:00:1A:01:
> 00:0A:00:1D:01:00:00:00:1E:01:00:00:00:1F:01:00:00:00:22:01:00:00:00:
> 24:01:00:00:00:29:01:00:00:00:2A:01:00:00:00:E7:01:00:00:00
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message (translated)...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > QMUX:
> > > > > > >   length  = 157
> > > > > > >   flags   = 0x80
> > > > > > >   service = "ctl"
> > > > > > >   client  = 0
> > > > > > > QMI:
> > > > > > >   flags       = "response"
> > > > > > >   transaction = 2
> > > > > > >   tlv_length  = 146
> > > > > > >   message     = "Get Version Info" (0x0021)
> > > > > > > TLV:
> > > > > > >   type       = "Result" (0x02)
> > > > > > >   length     = 4
> > > > > > >   value      = 00:00:00:00
> > > > > > >   translated = SUCCESS
> > > > > > > TLV:
> > > > > > >   type       = "Service list" (0x01)
> > > > > > >   length     = 136
> > > > > > >   value      =
> 1B:00:01:00:05:00:01:01:00:24:00:02:01:00:0E:00:03:01:00:19:00:04:01:
> 00:03:00:05:01:00:0A:00:06:01:00:00:00:07:01:00:02:00:08:01:00:02:00:
> 09:02:00:01:00:0A:02:00:10:00:0B:01:00:19:00:0C:01:00:04:00:0F:01:00:
> 00:00:11:01:00:00:00:12:01:00:00:00:17:01:00:00:00:18:01:00:00:00:1A:
> 01:00:0A:00:1D:01:00:00:00:1E:01:00:00:00:1F:01:00:00:00:22:01:00:00:
> 00:24:01:00:00:00:29:01:00:00:00:2A:01:00:00:00:E7:01:00:00:00
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > >   translated = { [0] = '[ service = 'ctl' major_version =
> > > > > > > '1'
> minor_version = '5' ] ' [1] = '[ service = 'wds' major_version = '1'
> minor_version = '36' ] ' [2] = '[ service = 'dms' major_version = '1'
> minor_version = '14' ] ' [3] = '[ service = 'nas' major_version = '1'
> minor_version = '25' ] ' [4] = '[ service = 'qos' major_version = '1'
> minor_version = '3' ] ' [5] = '[ service = 'wms' major_version = '1'
> minor_version = '10' ] ' [6] = '[ service = 'pds' major_version = '1'
> minor_version = '0' ] ' [7] = '[ service = 'auth' major_version = '1'
> minor_version = '2' ] ' [8] = '[ service = 'at' major_version = '1'
> minor_version = '2' ] ' [9] = '[ service = 'voice' major_version =
> '2'
> minor_version = '1' ] ' [10] = '[ service = 'cat2' major_version =
> '2'
> minor_version = '16' ] ' [11] = '[ service = 'uim' major_version =
> '1'
> minor_version = '25' ] ' [12] = '[ service = 'pbm' major_version =
> '1'
> minor_version = '4' ] ' [13] = '[ service = 'test' major_version =
> '1'
> minor_version = '0' ] ' [14] = '[ service = 'sar' major_version = '1'
> minor_version = '0' ] ' [15] = '[ service = 'ims' major_version = '1'
> minor_version = '0' ] ' [16] = '[ service = 'ts' major_version = '1'
> minor_version = '0' ] ' [17] = '[ service = 'tmd' major_version = '1'
> minor_version = '0' ] ' [18] = '[ service = 'wda' major_version = '1'
> minor_version = '10' ] ' [19] = '[ service = 'csvt' major_version =
> '1'
> minor_version = '0' ] ' [20] = '[ service = 'qcmap' major_version =
> '1'
> minor_version = '0' ] ' [21] = '[ service = 'imsp' major_version =
> '1'
> minor_version = '0' ] ' [22] = '[ service = 'coex' major_version =
> '1'
> minor_version = '0' ] ' [23] = '[ service = 'pdc' major_version = '1'
> minor_version = '0' ] ' [24] = '[ service = 'rfrpe' major_version =
> '1'
> minor_version = '0' ] ' [25] = '[ service = 'dsd' major_version = '1'
> minor_version = '0' ] ' [26] = '[ service = '(null)' major_version =
> '1'
> minor_version = '0' ] '}
> 
> [DEBUG]  [/dev/cdc-wdm0] QMI Device supports 27 services:
> [DEBUG]  [/dev/cdc-wdm0]    ctl (1.5)
> [DEBUG]  [/dev/cdc-wdm0]    wds (1.36)
> [DEBUG]  [/dev/cdc-wdm0]    dms (1.14)
> [DEBUG]  [/dev/cdc-wdm0]    nas (1.25)
> [DEBUG]  [/dev/cdc-wdm0]    qos (1.3)
> [DEBUG]  [/dev/cdc-wdm0]    wms (1.10)
> [DEBUG]  [/dev/cdc-wdm0]    pds (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    auth (1.2)
> [DEBUG]  [/dev/cdc-wdm0]    at (1.2)
> [DEBUG]  [/dev/cdc-wdm0]    voice (2.1)
> [DEBUG]  [/dev/cdc-wdm0]    cat2 (2.16)
> [DEBUG]  [/dev/cdc-wdm0]    uim (1.25)
> [DEBUG]  [/dev/cdc-wdm0]    pbm (1.4)
> [DEBUG]  [/dev/cdc-wdm0]    test (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    sar (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    ims (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    ts (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    tmd (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    wda (1.10)
> [DEBUG]  [/dev/cdc-wdm0]    csvt (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    qcmap (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    imsp (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    coex (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    pdc (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    rfrpe (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    dsd (1.0)
> [DEBUG]  [/dev/cdc-wdm0]    unknown [0xe7] (1.0)
> [DEBUG]  [/dev/cdc-wdm0] Allocating new client ID...
> [DEBUG]  [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 16
> <<<<<<   data   = 01:0F:00:00:00:00:00:03:22:00:04:00:01:01:00:02
> 
> [DEBUG]  [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 15
> <<<<<<   flags   = 0x00
> <<<<<<   service = "ctl"
> <<<<<<   client  = 0
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 3
> <<<<<<   tlv_length  = 4
> <<<<<<   message     = "Allocate CID" (0x0022)
> <<<<<< TLV:
> <<<<<<   type       = "Service" (0x01)
> <<<<<<   length     = 1
> <<<<<<   value      = 02
> <<<<<<   translated = dms
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > RAW:
> > > > > > >   length = 24
> > > > > > >   data   =
> 01:17:00:80:00:00:01:03:22:00:0C:00:02:04:00:00:00:00:00:01:02:00:02:
> 02
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message (translated)...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > QMUX:
> > > > > > >   length  = 23
> > > > > > >   flags   = 0x80
> > > > > > >   service = "ctl"
> > > > > > >   client  = 0
> > > > > > > QMI:
> > > > > > >   flags       = "response"
> > > > > > >   transaction = 3
> > > > > > >   tlv_length  = 12
> > > > > > >   message     = "Allocate CID" (0x0022)
> > > > > > > TLV:
> > > > > > >   type       = "Result" (0x02)
> > > > > > >   length     = 4
> > > > > > >   value      = 00:00:00:00
> > > > > > >   translated = SUCCESS
> > > > > > > TLV:
> > > > > > >   type       = "Allocation Info" (0x01)
> > > > > > >   length     = 2
> > > > > > >   value      = 02:02
> > > > > > >   translated = [ service = 'dms' cid = '2' ]
> 
> [DEBUG]  [/dev/cdc-wdm0] Registered 'dms' (version 1.14) client with
> ID '2'
> [DEBUG]  [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 17
> <<<<<<   data   = 01:10:00:00:02:02:00:01:00:01:00:04:00:14:01:00:01
> 
> [DEBUG]  [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 16
> <<<<<<   flags   = 0x00
> <<<<<<   service = "dms"
> <<<<<<   client  = 2
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 1
> <<<<<<   tlv_length  = 4
> <<<<<<   message     = "Set Event Report" (0x0001)
> <<<<<< TLV:
> <<<<<<   type       = "Operating Mode Reporting" (0x14)
> <<<<<<   length     = 1
> <<<<<<   value      = 01
> <<<<<<   translated = yes
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > RAW:
> > > > > > >   length = 20
> > > > > > >   data   =
> 01:13:00:80:02:02:02:01:00:01:00:07:00:02:04:00:00:00:00:00
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message (translated)...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > QMUX:
> > > > > > >   length  = 19
> > > > > > >   flags   = 0x80
> > > > > > >   service = "dms"
> > > > > > >   client  = 2
> > > > > > > QMI:
> > > > > > >   flags       = "response"
> > > > > > >   transaction = 1
> > > > > > >   tlv_length  = 7
> > > > > > >   message     = "Set Event Report" (0x0001)
> > > > > > > TLV:
> > > > > > >   type       = "Result" (0x02)
> > > > > > >   length     = 4
> > > > > > >   value      = 00:00:00:00
> > > > > > >   translated = SUCCESS
> 
> [DEBUG]  [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 17
> <<<<<<   data   = 01:10:00:00:02:02:00:02:00:2E:00:04:00:01:01:00:01
> 
> [DEBUG]  [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 16
> <<<<<<   flags   = 0x00
> <<<<<<   service = "dms"
> <<<<<<   client  = 2
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 2
> <<<<<<   tlv_length  = 4
> <<<<<<   message     = "Set Operating Mode" (0x002E)
> <<<<<< TLV:
> <<<<<<   type       = "Mode" (0x01)
> <<<<<<   length     = 1
> <<<<<<   value      = 01
> <<<<<<   translated = low-power
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > RAW:
> > > > > > >   length = 20
> > > > > > >   data   =
> 01:13:00:80:02:02:02:02:00:2E:00:07:00:02:04:00:00:00:00:00
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message (translated)...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > QMUX:
> > > > > > >   length  = 19
> > > > > > >   flags   = 0x80
> > > > > > >   service = "dms"
> > > > > > >   client  = 2
> > > > > > > QMI:
> > > > > > >   flags       = "response"
> > > > > > >   transaction = 2
> > > > > > >   tlv_length  = 7
> > > > > > >   message     = "Set Operating Mode" (0x002E)
> > > > > > > TLV:
> > > > > > >   type       = "Result" (0x02)
> > > > > > >   length     = 4
> > > > > > >   value      = 00:00:00:00
> > > > > > >   translated = SUCCESS
> 
> [DEBUG]  [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<<   length = 17
> <<<<<<   data   = 01:10:00:00:02:02:00:03:00:2E:00:04:00:01:01:00:00
> 
> [DEBUG]  [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 16
> <<<<<<   flags   = 0x00
> <<<<<<   service = "dms"
> <<<<<<   client  = 2
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 3
> <<<<<<   tlv_length  = 4
> <<<<<<   message     = "Set Operating Mode" (0x002E)
> <<<<<< TLV:
> <<<<<<   type       = "Mode" (0x01)
> <<<<<<   length     = 1
> <<<<<<   value      = 00
> <<<<<<   translated = online
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > RAW:
> > > > > > >   length = 20
> > > > > > >   data   =
> 01:13:00:80:02:02:02:03:00:2E:00:07:00:02:04:00:00:00:00:00
> 
> [DEBUG]  [/dev/cdc-wdm0] Received message (translated)...
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > QMUX:
> > > > > > >   length  = 19
> > > > > > >   flags   = 0x80
> > > > > > >   service = "dms"
> > > > > > >   client  = 2
> > > > > > > QMI:
> > > > > > >   flags       = "response"
> > > > > > >   transaction = 3
> > > > > > >   tlv_length  = 7
> > > > > > >   message     = "Set Operating Mode" (0x002E)
> > > > > > > TLV:
> > > > > > >   type       = "Result" (0x02)
> > > > > > >   length     = 4
> > > > > > >   value      = 00:00:00:00
> > > > > > >   translated = SUCCESS
> 
> [INFO]   All done.
> 
> 
> 
> 
> On Tue, Dec 6, 2016 at 9:20 AM, Dan Williams <dcbw at redhat.com> wrote:
> 
> > 
> > On Mon, 2016-12-05 at 19:14 -0800, Shilpa Velamuri wrote:
> > > 
> > > Do indications from modem arrive to libqmi on the same
> > > port/pipe/path
> > > as
> > > request/response messages?
> > 
> > Yes, they do.  Indications *are* responses, they just have a
> > different
> > bit set in the header to indicate they aren't responses to a
> > specific
> > command.  If you can receive responses, there is no reason you
> > shouldn't be able to receive indications too.
> > 
> > Have you tried with a different device to see if the device's
> > firmware
> > is somehow buggy?  What QMI service versions do you have?  Some
> > early
> > firmware versions don't support many indications.  But they should
> > all
> > support at least basic ones from NAS and DMS.
> > 
> > > 
> > > Does the flag - QMI_DEVICE_OPEN_FLAGS_SYNC have any effect on
> > > receiving
> > > indications?
> > 
> > Not really. This flag opens the device and tells the firmware to
> > "sync"
> > itself, which clears firmware state and disposes of all existing
> > allocated QMI clients.  So in that case yes, it throws away any
> > indication setup you may have previously done, and you'd need to
> > enable
> > those indications again.
> > 
> > 
> > Can you try to build and run the attached file?  Instructions in
> > the
> > file near the top.  This will test if your device handles
> > indications
> > correctly.
> > 
> > Dan
> > 
> > > 
> > > 
> > > 
> > > On Fri, Dec 2, 2016 at 12:27 AM, Aleksander Morgado <
> > > aleksander at aleksander.es> wrote:
> > > 
> > > > 
> > > > 
> > > > On Fri, Dec 2, 2016 at 12:34 AM, Shilpa Velamuri <shilpa.vel at gm
> > > > ail.
> > > > com>
> > > > wrote:
> > > > > 
> > > > > 
> > > > > Do I need to do anything else to receive indications?
> > > > 
> > > > Hum... not that I know of, that should be enough.
> > > > 
> > > > 
> > > > --
> > > > Aleksander
> > > > https://aleksander.es
> > > > 
> > > _______________________________________________
> > > libqmi-devel mailing list
> > > libqmi-devel at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/libqmi-devel
> _______________________________________________
> libqmi-devel mailing list
> libqmi-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libqmi-devel


More information about the libqmi-devel mailing list