public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/1] Implement Compound (Multi-step) GATT Procedure Support
@ 2010-12-17 22:48 Brian Gix
  2010-12-17 22:48 ` [RFC 1/2] Add g_attrib_send_seq() Brian Gix
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Brian Gix @ 2010-12-17 22:48 UTC (permalink / raw)
  Cc: rshaffer, padovan, linux-bluetooth


The following two proposed patches implement a method for correctly
staging GATT procedures that require multiple ATT req/resp exchanges.

The first RFC / PATCH is gattrib.[ch], which allows the caller to specify
a gboolean indicating that the command being queued is Compound
(even if the procedure ends up being single/atomic) and a queue ID
number, which allows the caller to cancel the GATT procedure at any
stage of the transaction.

IF -
The ATT opcode being queued is specified as compound, the resulting response
will not cause the next item in the queue to be sent until *after* the
response has been forwarded to the caller via the response callback.

IF -
The ATT opcode being queued is *not* compound, the resulting response
will service the pkt queue immediately (legacy functionality).

IF -
The ID passed to g_attrib_send_seq is ZERO, the command pkt will
be added to the TAIL of the queue, and a new ID assigned to it.
(Legacy functionality)

IF -
The ID passed to g_attrib_send_seq is NON-ZERO, the command pkt
will be added to the HEAD of the queue, causing it to be the next
pkt sent to the remote device.  The NON-ZERO ID is also then able
to cancel the command.


The second RFC / PATCH is to gatt.c. It modifies the existing gatt_read_char()
function to recognize the need for a compound Read procedure, and implements
it as a READ_REQ + READ_BLOB_REQ + READ_BLOB_REQ ...<etc> as needed, using
the g_attrib_send_seq() logic from the first RFC / PATCH.

-- 
Brian Gix
bgix@codeaurora.org
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-01-05 22:27 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-17 22:48 [RFC 0/1] Implement Compound (Multi-step) GATT Procedure Support Brian Gix
2010-12-17 22:48 ` [RFC 1/2] Add g_attrib_send_seq() Brian Gix
2010-12-22 22:29   ` Claudio Takahasi
2010-12-22 23:13     ` Brian Gix
2010-12-28 21:48       ` Vinicius Costa Gomes
2011-01-05  1:07         ` bgix
2011-01-05 22:27         ` Brian Gix
2010-12-17 22:48 ` [RFC 2/2] Fix gatt_read_char() to work with long attributes Brian Gix
2010-12-21 17:25 ` [RFC 0/1] Implement Compound (Multi-step) GATT Procedure Support Brian Gix
2010-12-21 19:25   ` Claudio Takahasi
2010-12-21 19:50     ` Brian Gix

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox