linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Bluez-devel] Host Controller to Host Flow Control
@ 2006-08-08  3:56 Mayank BATRA
  2006-08-08 12:52 ` Ulisses Furquim
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-08  3:56 UTC (permalink / raw)
  To: BlueZ development

Hi,

I wanted to know whether Host Controller to Host Flow Control has been implemented in the BlueZ stack?
I am interested in giving it a shot in case it is not already there or someone is not working on it.

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-08  3:56 [Bluez-devel] Host Controller to Host Flow Control Mayank BATRA
@ 2006-08-08 12:52 ` Ulisses Furquim
  2006-08-09 21:58   ` Marcel Holtmann
  2006-08-10  8:35   ` Mayank BATRA
  0 siblings, 2 replies; 41+ messages in thread
From: Ulisses Furquim @ 2006-08-08 12:52 UTC (permalink / raw)
  To: BlueZ development

On 8/8/06, Mayank BATRA <mayank.batra@st.com> wrote:
> I wanted to know whether Host Controller to Host Flow Control has been implemented in the BlueZ stack?
> I am interested in giving it a shot in case it is not already there or someone is not working on it.

No, it's not implemented in the BlueZ stack. I've done a preliminary
work on this but haven't completed it yet. You can see my and Marcel
Holtmann e-mails on the bluez-devel mailing list archive about this.
If you want to help us, please feel free to send in patches.

Regards,

-- Ulisses

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-08 12:52 ` Ulisses Furquim
@ 2006-08-09 21:58   ` Marcel Holtmann
  2006-08-10  4:33     ` Mayank BATRA
  2006-08-10  8:35   ` Mayank BATRA
  1 sibling, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-09 21:58 UTC (permalink / raw)
  To: BlueZ development

Hi Ulisses,

> > I wanted to know whether Host Controller to Host Flow Control has been implemented in the BlueZ stack?
> > I am interested in giving it a shot in case it is not already there or someone is not working on it.
> 
> No, it's not implemented in the BlueZ stack. I've done a preliminary
> work on this but haven't completed it yet. You can see my and Marcel
> Holtmann e-mails on the bluez-devel mailing list archive about this.
> If you want to help us, please feel free to send in patches.

feel free to work together with Mayank to get a testing version we can
include into the -mh patch.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-09 21:58   ` Marcel Holtmann
@ 2006-08-10  4:33     ` Mayank BATRA
  0 siblings, 0 replies; 41+ messages in thread
From: Mayank BATRA @ 2006-08-10  4:33 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Marcel, Ulisses,

> feel free to work together with Mayank to get a testing version we can
> include into the -mh patch.

I am ready to help as much as possible. I was reading the spec over the
weekend to understand what HC to Host FC requires.
Ulisses, can you please provide me some starting ground?

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-08 12:52 ` Ulisses Furquim
  2006-08-09 21:58   ` Marcel Holtmann
@ 2006-08-10  8:35   ` Mayank BATRA
  2006-08-10 13:00     ` Ulisses Furquim
  1 sibling, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-10  8:35 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Ulisses,

> If you want to help us, please feel free to send in patches.

Here are some of my observations, please correct me in case I am wrong.

(i) For enabling FC from HC to Host, the host first of all sends Host Buffer
Size Command providing the number of ACL and SCO buffers and their
respective sizes.
(ii) The host then issues Set Host Controller To Host Flow Control Command.
(iii) Host will send a Host Number of Completed Packets Command to the
controller. But my question is when??
After every ACL Packet received?

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-10  8:35   ` Mayank BATRA
@ 2006-08-10 13:00     ` Ulisses Furquim
  2006-08-10 13:43       ` Mayank BATRA
  2006-08-14 15:24       ` Mayank BATRA
  0 siblings, 2 replies; 41+ messages in thread
From: Ulisses Furquim @ 2006-08-10 13:00 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

On 8/10/06, Mayank BATRA <mayank.batra@st.com> wrote:
> Here are some of my observations, please correct me in case I am wrong.
>
> (i) For enabling FC from HC to Host, the host first of all sends Host Buffer
> Size Command providing the number of ACL and SCO buffers and their
> respective sizes.
> (ii) The host then issues Set Host Controller To Host Flow Control Command.
> (iii) Host will send a Host Number of Completed Packets Command to the
> controller. But my question is when??
> After every ACL Packet received?

Yeah, that is exactly what we've already discussed [1] and Marcel
suggested to send a Host Number of Completed Packets command after
every packtet for starters even though that is not what we really want
(we might want to wait for 8 packets he said).

Best regards,

-- Ulisses

[1] http://article.gmane.org/gmane.linux.bluez.devel/8188

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-10 13:00     ` Ulisses Furquim
@ 2006-08-10 13:43       ` Mayank BATRA
  2006-08-14 15:24       ` Mayank BATRA
  1 sibling, 0 replies; 41+ messages in thread
From: Mayank BATRA @ 2006-08-10 13:43 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Ulisses,

> > (iii) Host will send a Host Number of Completed Packets 
> Command to the
> > controller. But my question is when??
> > After every ACL Packet received?
> 
> Yeah, that is exactly what we've already discussed [1] and Marcel
> suggested to send a Host Number of Completed Packets command after
> every packtet for starters even though that is not what we really want
> (we might want to wait for 8 packets he said).

We can wait for 8 packets. But what if at the time of ACL disconnection,
less than 8 packets have been received?

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-10 13:00     ` Ulisses Furquim
  2006-08-10 13:43       ` Mayank BATRA
@ 2006-08-14 15:24       ` Mayank BATRA
  2006-08-14 20:26         ` Marcel Holtmann
  1 sibling, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-14 15:24 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Ulisses and Marcel,

I propose the following changes (in addition to those suggested by Ulisses
earlier) for implementing Controller to Host Flow Control:

(i) Update hci.h to include commands like host number of completed packets
cmd and set controller to host flow control cmd.
(ii) Update hcid.h file to include an additional member to the enum:
enum {
	HCID_SET_NAME,
	HCID_SET_CLASS,
	HCID_SET_VOICE,
	HCID_SET_INQMODE,
	HCID_SET_PAGETO,
	HCID_SET_DISCOVTO,
	HCID_SET_PTYPE,
	HCID_SET_LM,
	HCID_SET_LP,
+	HCID_SET_C_TO_HOST_FC,
};

And update the structure device_opts:
struct device_opts {
	unsigned long flags;
	char    *name;
	uint32_t class;
	uint16_t voice;
	uint8_t  inqmode;
	uint16_t pageto;
	uint16_t pkt_type;
	uint16_t link_mode;
	uint16_t link_policy;
	uint16_t scan;
	int      discovto;
+	int		c_to_host_fc;
};

Of course, this means that the hcid.conf (and parser.y) will contain another
entry to enable/disable flow control.

> > (i) For enabling FC from HC to Host, the host first of all 
> sends Host Buffer
> > Size Command providing the number of ACL and SCO buffers and their
> > respective sizes.
> > (ii) The host then issues Set Host Controller To Host Flow 
> Control Command.


(iii) The host buffer size command and set controller to host flow
controller command can be sent from configure_device() of hcid/main.c


> > (iii) Host will send a Host Number of Completed Packets 
> Command to the
> > controller.

But, I could not figure out from where should we send the Host Number of
completed packets command. Do you have any suggestions. I mean, can you give
me an idea where can we get to know the receipt of ACL Data at user level?

Thanks.

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-14 15:24       ` Mayank BATRA
@ 2006-08-14 20:26         ` Marcel Holtmann
  2006-08-17  4:43           ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-14 20:26 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> I propose the following changes (in addition to those suggested by Ulisses
> earlier) for implementing Controller to Host Flow Control:
> 
> (i) Update hci.h to include commands like host number of completed packets
> cmd and set controller to host flow control cmd.

we need them for the kernel, bluez-libs and bluez-hcidump. Go ahead and
send in patches for it.

> (ii) Update hcid.h file to include an additional member to the enum:
> enum {
> 	HCID_SET_NAME,
> 	HCID_SET_CLASS,
> 	HCID_SET_VOICE,
> 	HCID_SET_INQMODE,
> 	HCID_SET_PAGETO,
> 	HCID_SET_DISCOVTO,
> 	HCID_SET_PTYPE,
> 	HCID_SET_LM,
> 	HCID_SET_LP,
> +	HCID_SET_C_TO_HOST_FC,
> };
> 
> And update the structure device_opts:
> struct device_opts {
> 	unsigned long flags;
> 	char    *name;
> 	uint32_t class;
> 	uint16_t voice;
> 	uint8_t  inqmode;
> 	uint16_t pageto;
> 	uint16_t pkt_type;
> 	uint16_t link_mode;
> 	uint16_t link_policy;
> 	uint16_t scan;
> 	int      discovto;
> +	int		c_to_host_fc;
> };
> 
> Of course, this means that the hcid.conf (and parser.y) will contain another
> entry to enable/disable flow control.

No additional config option at the moment. It is not needed right now.
If we really want it, we can do it later.

> > > (i) For enabling FC from HC to Host, the host first of all 
> > sends Host Buffer
> > > Size Command providing the number of ACL and SCO buffers and their
> > > respective sizes.
> > > (ii) The host then issues Set Host Controller To Host Flow 
> > Control Command.
> 
> (iii) The host buffer size command and set controller to host flow
> controller command can be sent from configure_device() of hcid/main.c

No. This must be done in the kernel. It is not the job of hcid.

> > > (iii) Host will send a Host Number of Completed Packets 
> > Command to the
> > > controller.
> 
> But, I could not figure out from where should we send the Host Number of
> completed packets command. Do you have any suggestions. I mean, can you give
> me an idea where can we get to know the receipt of ACL Data at user level?

This must be done in the kernel. It is like sniff mode support. Only the
kernel knows all facts.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-14 20:26         ` Marcel Holtmann
@ 2006-08-17  4:43           ` Mayank BATRA
  2006-08-17 12:59             ` Marcel Holtmann
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-17  4:43 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Marcel,

> > (iii) The host buffer size command and set controller to host flow
> > controller command can be sent from configure_device() of 
> hcid/main.c
> 
> No. This must be done in the kernel. It is not the job of hcid.

I still feel that these two commands should be sent from hcid at the time of
initialization amd the user should have option to enable/disable this flow
control from hcid.conf

> > But, I could not figure out from where should we send the 
> Host Number of
> > completed packets command. Do you have any suggestions. I 
> mean, can you give
> > me an idea where can we get to know the receipt of ACL Data 
> at user level?
> 
> This must be done in the kernel. It is like sniff mode 
> support. Only the
> kernel knows all facts.

I agree with this.

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-17 12:59             ` Marcel Holtmann
@ 2006-08-17 11:20               ` Mayank BATRA
  2006-08-17 13:45                 ` Marcel Holtmann
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-17 11:20 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Marcel,

> to start something we can do this. Remember that the kernel 
> then have to
> track these commands to see if it has to use host controller to host
> flow control or not.
> 

Hmmm.... I think I understand now why you were insisting this to be done at
the kernel side.
Because if we set flow control from user side then it will be difficult to
inform the kernel about this.
I'll try both things (setting flow control and sending host no of completed
packets) from kernel side only.

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-17  4:43           ` Mayank BATRA
@ 2006-08-17 12:59             ` Marcel Holtmann
  2006-08-17 11:20               ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-17 12:59 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > > (iii) The host buffer size command and set controller to host flow
> > > controller command can be sent from configure_device() of 
> > hcid/main.c
> > 
> > No. This must be done in the kernel. It is not the job of hcid.
> 
> I still feel that these two commands should be sent from hcid at the time of
> initialization amd the user should have option to enable/disable this flow
> control from hcid.conf

to start something we can do this. Remember that the kernel then have to
track these commands to see if it has to use host controller to host
flow control or not.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-17 11:20               ` Mayank BATRA
@ 2006-08-17 13:45                 ` Marcel Holtmann
  2006-08-18  9:54                   ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-17 13:45 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > to start something we can do this. Remember that the kernel 
> > then have to
> > track these commands to see if it has to use host controller to host
> > flow control or not.
> > 
> 
> Hmmm.... I think I understand now why you were insisting this to be done at
> the kernel side.
> Because if we set flow control from user side then it will be difficult to
> inform the kernel about this.
> I'll try both things (setting flow control and sending host no of completed
> packets) from kernel side only.

it is not that complicated. We have to do this for a lot of commands
that you can use from userspace and the kernel has to detect its
execution. You might wanna do it anyway so you should have a look at the
examples in hci_event.c inside the kernel code.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-17 13:45                 ` Marcel Holtmann
@ 2006-08-18  9:54                   ` Mayank BATRA
  2006-08-18 14:04                     ` Marcel Holtmann
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-18  9:54 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Marcel,

> it is not that complicated. We have to do this for a lot of commands
> that you can use from userspace and the kernel has to detect its
> execution. You might wanna do it anyway so you should have a 
> look at the
> examples in hci_event.c inside the kernel code.

I'm almost done with the implementation. I'm testing it currently, but there
is a problem. According to the spec, for Host Number of Completed Packets
command, no event is generated by the controller if there is no error. But,
I think the BlueZ stack is expecting an event for this command. Can you
suggest how can I prevent waiting for an event for this command?

Dmesg shows the following:

Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
hci_cmd_task: hci0 command tx timeout
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
hci_cmd_task: hci0 command tx timeout
Warning: null TTY for (d8:00) in tty_fasync
hci_cmd_task: hci0 command tx timeout
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
hci_cmd_task: hci0 command tx timeout
Sending Host No of Completed Packets:
hci_cmd_task: hci0 command tx timeout
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
Sending Host No of Completed Packets:
hci_cmd_task: hci0 command tx timeout
Sending Host No of Completed Packets:


=======================================

Note that "Sending Host No of Completed Packets:" has been added by me. Can
you tell me the reason for "hci_cmd_task: hci0 command tx timeout"

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-18 14:04                     ` Marcel Holtmann
@ 2006-08-18 12:26                       ` Mayank BATRA
  2006-08-21  9:41                         ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-18 12:26 UTC (permalink / raw)
  To: 'BlueZ development'

[-- Attachment #1: Type: text/plain, Size: 1144 bytes --]

Hi Marcel,

> > Sending Host No of Completed Packets:
> > Sending Host No of Completed Packets:
> > Sending Host No of Completed Packets:
> > Sending Host No of Completed Packets:
> > Sending Host No of Completed Packets:
> > Sending Host No of Completed Packets:
> > Sending Host No of Completed Packets:
> > Sending Host No of Completed Packets:
> > Sending Host No of Completed Packets:
> > hci_cmd_task: hci0 command tx timeout
> > Sending Host No of Completed Packets:
> > 
> > 
> > =======================================
> > 
> > Note that "Sending Host No of Completed Packets:" has been 
> added by me. Can
> > you tell me the reason for "hci_cmd_task: hci0 command tx timeout"
> 
> I have to see the source code. Otherwise it would be only a 
> wild guess.

Here you go. Though, it is not the latest version of files that I am working
on.
It's a quick and dirty approach right now. Sending Host Number of Completed
Packets as soon as we receive ACL Data Packet on any connection handle.
Once this works, I'll try to send Host Number of completed packets after
reception of 8 packets.

Regards,
Mayank

[-- Attachment #2: hci.h.diff --]
[-- Type: application/octet-stream, Size: 1265 bytes --]

--- C:\Copy of hci.h	2006-05-31 21:12:40.000000000 +-0530
+++ C:\hci.h	2006-08-18 17:43:09.000000000 +-0530
@@ -817,20 +817,38 @@
 	uint8_t		status;
 	uint16_t	handle;
 	int8_t		level;
 } __attribute__ ((packed)) read_transmit_power_level_rp;
 #define READ_TRANSMIT_POWER_LEVEL_RP_SIZE 4
 
+#define OCF_SET_CONTROLLER_TO_HOST_FC	0x0031
+typedef struct {
+	uint8_t		flow_control_enable;
+} __attribute__ ((packed)) set_controller_to_host_fc_cp;
+#define SET_CONTROLLER_TO_HOST_FC_CP_SIZE	1
+typedef struct {
+	uint8_t		status;
+} __attribute__ ((packed)) set_controller_to_host_fc_rp;
+#define SET_CONTROLLER_TO_HOST_FC_RP_SIZE	1
+
 #define OCF_HOST_BUFFER_SIZE		0x0033
 typedef struct {
 	uint16_t	acl_mtu;
 	uint8_t		sco_mtu;
 	uint16_t	acl_max_pkt;
 	uint16_t	sco_max_pkt;
 } __attribute__ ((packed)) host_buffer_size_cp;
 #define HOST_BUFFER_SIZE_CP_SIZE 7
+
+#define OCF_HOST_NUM_OF_COMPLETED_PACKETS	0x0035
+typedef struct {
+	uint8_t		num_of_handles;
+	uint16_t	handle;
+	uint16_t	host_num_of_completed_packets;
+} __attribute__ ((packed)) host_num_of_completed_packets_cp;
+#define OCF_HOST_NUM_OF_COMPLETED_PACKETS_CP_SIZE 5
 
 #define OCF_READ_LINK_SUPERVISION_TIMEOUT	0x0036
 typedef struct {
 	uint8_t		status;
 	uint16_t	handle;
 	uint16_t	link_sup_to;

[-- Attachment #3: hci_core.diff --]
[-- Type: application/octet-stream, Size: 2400 bytes --]

--- C:\Copy of hci_core.c	2003-03-14 03:53:16.000000000 +-0530
+++ C:\hci_core.c	2006-08-18 17:50:19.000000000 +-0530
@@ -73,12 +73,13 @@
 #define HCI_MAX_PROTO	2
 struct hci_proto *hci_proto[HCI_MAX_PROTO];
 
 /* HCI notifiers list */
 static struct notifier_block *hci_notifier;
 
+extern int __controller_to_host_fc;
 
 /* ---- HCI notifications ---- */
 
 int hci_register_notifier(struct notifier_block *nb)
 {
 	return notifier_chain_register(&hci_notifier, nb);
@@ -221,24 +222,22 @@
 	/* Read Local Supported Features */
 	hci_send_cmd(hdev, OGF_INFO_PARAM, OCF_READ_LOCAL_FEATURES, 0, NULL);
 
 	/* Read Buffer Size (ACL mtu, max pkt, etc.) */
 	hci_send_cmd(hdev, OGF_INFO_PARAM, OCF_READ_BUFFER_SIZE, 0, NULL);
 
-#if 0
 	/* Host buffer size */
 	{
 		host_buffer_size_cp bs;
 		bs.acl_mtu = __cpu_to_le16(HCI_MAX_ACL_SIZE);
 		bs.sco_mtu = HCI_MAX_SCO_SIZE;
 		bs.acl_max_pkt = __cpu_to_le16(0xffff);
 		bs.sco_max_pkt = __cpu_to_le16(0xffff);
 		hci_send_cmd(hdev, OGF_HOST_CTL, OCF_HOST_BUFFER_SIZE,
 				HOST_BUFFER_SIZE_CP_SIZE, &bs);
 	}
-#endif
 
 	/* Read BD Address */
 	hci_send_cmd(hdev, OGF_INFO_PARAM, OCF_READ_BD_ADDR, 0, NULL);
 
 	/* Optional initialization */
 
@@ -1273,12 +1272,13 @@
 /* ACL data packet */
 static inline void hci_acldata_packet(struct hci_dev *hdev, struct sk_buff *skb)
 {
 	hci_acl_hdr *ah = (void *) skb->data;
 	struct hci_conn *conn;
 	__u16 handle, flags;
+	host_num_of_completed_packets_cp cp;
 
 	skb_pull(skb, HCI_ACL_HDR_SIZE);
 
 	handle = __le16_to_cpu(ah->handle);
 	flags  = acl_flags(handle);
 	handle = acl_handle(handle);
@@ -1287,12 +1287,24 @@
 
 	hdev->stat.acl_rx++;
 
 	hci_dev_lock(hdev);
 	conn = conn_hash_lookup_handle(hdev, handle);
 	hci_dev_unlock(hdev);
+	/* If flow control has been enabled from Controller to Host
+	 * send Host Number of Completed Packets Command
+	 * Note that there is no event generated for this command
+	 */
+
+	if(__controller_to_host_fc) {
+		cp.num_of_handles = 0x01;
+		cp.handle = handle;
+		cp.host_num_of_completed_packets = 0x01;
+		hci_send_cmd(hdev, OGF_HOST_CTL, OCF_HOST_NUM_OF_COMPLETED_PACKETS, 
+				OCF_HOST_NUM_OF_COMPLETED_PACKETS_CP_SIZE, &cp);
+	}
 	
 	if (conn) {
 		register struct hci_proto *hp;
 
 		/* Send to upper protocol */
 		if ((hp = hci_proto[HCI_PROTO_L2CAP]) && hp->recv_acldata) {

[-- Attachment #4: hci_event.diff --]
[-- Type: application/octet-stream, Size: 1799 bytes --]

--- C:\Copy of hci_event.c	2006-08-17 17:37:06.000000000 +-0530
+++ C:\hci_event.c	2006-08-18 17:51:37.000000000 +-0530
@@ -54,12 +54,14 @@
 
 #ifndef HCI_CORE_DEBUG
 #undef  BT_DBG
 #define BT_DBG( A... )
 #endif
 
+int __controller_to_host_fc = 0;
+
 /* Handle HCI Event packets */
 
 /* Command Complete OGF LINK_CTL  */
 static void hci_cc_link_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb)
 {
 	BT_DBG("%s ocf 0x%x", hdev->name, ocf);
@@ -108,12 +110,13 @@
 
 /* Command Complete OGF HOST_CTL  */
 static void hci_cc_host_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb)
 {
 	__u8 status, param;
 	void *sent;
+	set_controller_to_host_fc_cp cp;
 
 	BT_DBG("%s ocf 0x%x", hdev->name, ocf);
 
 	switch (ocf) {
 	case OCF_RESET:
 		status = *((__u8 *) skb->data);
@@ -205,12 +208,33 @@
 	case OCF_HOST_BUFFER_SIZE:
 		status = *((__u8 *) skb->data);
 		if (status) {
 			BT_DBG("%s OCF_BUFFER_SIZE failed %d", hdev->name, status);
 			hci_req_complete(hdev, status);
 		}
+		else {
+			memset(&cp, 0, sizeof(cp));
+			/* Set Flow Control on for HCI ACL Data Packets
+			 * and off for HCI Synchronous Data Packets
+			 */
+			cp.flow_control_enable = 0x01;
+				
+			hci_send_cmd(hdev, OGF_HOST_CTL, OCF_SET_CONTROLLER_TO_HOST_FC,
+				SET_CONTROLLER_TO_HOST_FC_CP_SIZE, &cp);
+		}
+		break;
+
+	case OCF_SET_CONTROLLER_TO_HOST_FC:
+		status = *((__u8 *) skb->data);
+		if (status) {
+			BT_DBG("%s OCF_SET_CONTROLLER_TO_HOST_FC failed %d", hdev->name, status);
+			hci_req_complete(hdev, status);
+		}
+		else {
+			__controller_to_host_fc = 1; /* Start using Controller to Host Flow Control */
+		}
 		break;
 
 	default:
 		BT_DBG("%s Command complete: ogf HOST_CTL ocf %x", hdev->name, ocf);
 		break;
 	};

[-- Attachment #5: Type: text/plain, Size: 373 bytes --]

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

[-- Attachment #6: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-18  9:54                   ` Mayank BATRA
@ 2006-08-18 14:04                     ` Marcel Holtmann
  2006-08-18 12:26                       ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-18 14:04 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > it is not that complicated. We have to do this for a lot of commands
> > that you can use from userspace and the kernel has to detect its
> > execution. You might wanna do it anyway so you should have a 
> > look at the
> > examples in hci_event.c inside the kernel code.
> 
> I'm almost done with the implementation. I'm testing it currently, but there
> is a problem. According to the spec, for Host Number of Completed Packets
> command, no event is generated by the controller if there is no error. But,
> I think the BlueZ stack is expecting an event for this command. Can you
> suggest how can I prevent waiting for an event for this command?
> 
> Dmesg shows the following:
> 
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> hci_cmd_task: hci0 command tx timeout
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> hci_cmd_task: hci0 command tx timeout
> Warning: null TTY for (d8:00) in tty_fasync
> hci_cmd_task: hci0 command tx timeout
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> hci_cmd_task: hci0 command tx timeout
> Sending Host No of Completed Packets:
> hci_cmd_task: hci0 command tx timeout
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> Sending Host No of Completed Packets:
> hci_cmd_task: hci0 command tx timeout
> Sending Host No of Completed Packets:
> 
> 
> =======================================
> 
> Note that "Sending Host No of Completed Packets:" has been added by me. Can
> you tell me the reason for "hci_cmd_task: hci0 command tx timeout"

I have to see the source code. Otherwise it would be only a wild guess.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-18 12:26                       ` Mayank BATRA
@ 2006-08-21  9:41                         ` Mayank BATRA
  2006-08-21 11:51                           ` Marcel Holtmann
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-21  9:41 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Marcel,

> Here you go. Though, it is not the latest version of files 
> that I am working
> on.
> It's a quick and dirty approach right now. Sending Host 
> Number of Completed
> Packets as soon as we receive ACL Data Packet on any 
> connection handle.
> Once this works, I'll try to send Host Number of completed 
> packets after
> reception of 8 packets.


I am still facing the same issue that since there is no event generated for
Host Number of Completed packets command and the BlueZ stack is expecting an
event for this command, the command finally times out. dmesg shows
"hci_cmd_task: hci0 command tx timeout". The ACL data transfer stops after
this. Also, when I disconnect, I see that all the remaining Host Number of
completed packets commands that were queued earlier on, are sent finally.

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 11:51                           ` Marcel Holtmann
@ 2006-08-21 11:28                             ` Mayank BATRA
  2006-08-21 13:34                               ` Marcel Holtmann
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-21 11:28 UTC (permalink / raw)
  To: 'BlueZ development'

[-- Attachment #1: Type: text/plain, Size: 316 bytes --]

Hi Marcel,

> you need to use the raw queue for sending this command. You can't use
> the normal sent queue. We do the same for vendor specific commands.

I am now using the raw queue for sending this command. Can you have a look
at the attached hcidump log to see if the behaviour is what we need?

Regards,
Mayank

[-- Attachment #2: c_to_host --]
[-- Type: application/octet-stream, Size: 58375 bytes --]

HCI sniffer - Bluetooth packet analyzer ver 1.30
device: hci0 snap_len: 1028 filter: 0xffffffff
< HCI Command: Read Local Supported Features (0x04|0x0003) plen 0
> HCI Event: Command Status (0x0f) plen 4
  0000: 00 01 00 00                                       ....
< HCI Command: Read Buffer Size (0x04|0x0005) plen 0
> HCI Event: Command Complete (0x0e) plen 12
  0000: 01 03 10 00 ff ff 0d 00  00 00 00 00              ............
< HCI Command: Host Buffer Size (0x03|0x0033) plen 7
  0000: 00 04 ff 08 00 08 00                              .......
> HCI Event: Command Complete (0x0e) plen 11
  0000: 01 05 10 00 c0 00 40 08  00 08 00                 ......@....
< HCI Command: Read BD ADDR (0x04|0x0009) plen 0
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 33 0c 00                                       .3..
< HCI Command: Set Event Filter (0x03|0x0005) plen 1
  0000: 00                                                .
> HCI Event: Command Complete (0x0e) plen 10
  0000: 01 09 10 00 5c 6d 35 63  60 00                    ....\m5c`.
< HCI Command: Write Page Timeout (0x03|0x0018) plen 2
  0000: 00 80                                             ..
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 05 0c 00                                       ....
< HCI Command: Write Connection Accept Timeout (0x03|0x0016) plen 2
  0000: 00 7d                                             .}
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 18 0c 00                                       ....
< HCI Command: Set Host Controller To Host Flow Control (0x03|0x0031) plen 1
  0000: 01                                                .
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 16 0c 00                                       ....
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1
  0000: 03                                                .
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 31 0c 00                                       .1..
< HCI Command: Read Stored Link Key (0x03|0x000d) plen 7
  0000: 00 00 00 00 00 00 01                              .......
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 1a 0c 00                                       ....
< HCI Command: Read Scan Enable (0x03|0x0019) plen 0
> HCI Event: Command Complete (0x0e) plen 8
  0000: 01 0d 0c 00 10 00 00 00                           ........
> HCI Event: Command Complete (0x0e) plen 5
  0000: 01 19 0c 00 03                                    .....
< HCI Command: Write Authentication Enable (0x03|0x0020) plen 1
  0000: 00                                                .
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 20 0c 00                                       . ..
< HCI Command: Write Authentication Enable (0x03|0x0020) plen 1
  0000: 00                                                .
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 20 0c 00                                       . ..
< HCI Command: Write Encryption Mode (0x03|0x0022) plen 1
  0000: 00                                                .
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 22 0c 00                                       ."..
< HCI Command: Write Local Name (0x03|0x0013) plen 248
  0000: 42 6c 75 65 5a 20 28 30  29 00 00 00 00 00 00 00  BlueZ (0).......
  0010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0040: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0050: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0060: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0070: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0080: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0090: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00a0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00b0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00c0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00d0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00e0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00f0: 00 00 00 00 00 00 00 00                           ........
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 13 0c 00                                       ....
< HCI Command: Write Class of Device (0x03|0x0024) plen 3
  0000: 00 01 3e                                          ..>
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 24 0c 00                                       .$..
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1
  0000: 03                                                .
> HCI Event: Command Complete (0x0e) plen 4
  0000: 01 1a 0c 00                                       ....
< HCI Command: Read Local Name (0x03|0x0014) plen 0
> HCI Event: Command Complete (0x0e) plen 252
  0000: 01 14 0c 00 42 6c 75 65  5a 20 28 30 29 00 00 00  ....BlueZ (0)...
  0010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0040: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0050: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0060: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0070: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0080: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  0090: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00a0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00b0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00c0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00d0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00e0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  00f0: 00 00 00 00 00 00 00 00  00 00 00 00              ............
< HCI Command: Read Scan Enable (0x03|0x0019) plen 0
> HCI Event: Command Complete (0x0e) plen 5
  0000: 01 19 0c 00 03                                    .....
< HCI Command: Create Connection (0x01|0x0005) plen 13
  0000: 99 03 0d e0 13 00 18 cc  00 00 00 00 01           .............
> HCI Event: Command Status (0x0f) plen 4
  0000: 00 01 05 04                                       ....
> HCI Event: Connect Complete (0x03) plen 11
  0000: 00 28 00 99 03 0d e0 13  00 01 00                 .(.........
< ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 3 scid 0x0040
< HCI Command: Write Link Policy Settings (0x02|0x000d) plen 4
  0000: 28 00 0f 00                                       (...
> HCI Event: Command Complete (0x0e) plen 6
  0000: 01 0d 08 00 28 00                                 ....(.
> HCI Event: Max Slots Change (0x1b) plen 3
  0000: 28 00 05                                          (..
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: QoS Setup Complete (0x0d) plen 21
  0000: 00 28 00 00 01 00 00 00  00 00 00 00 00 00 00 00  .(..............
  0010: 00 00 00 00 00                                    .....
> ACL data: handle 40 flags 0x02 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0046 scid 0x0040 result 0 status 0
      Connection successful
< ACL data: handle 40 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0046 flags 0x00 clen 4
      MTU 1024 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 0
< ACL data: handle 40 flags 0x02 dlen 14
    L2CAP(s): Config rsp: scid 0x0046 flags 0x00 result 0 clen 0
      Success
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 18
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4
      Success
      MTU 672 
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0046 len 4 [psm 3]
      RFCOMM(s): SABM: cr 1 dlci 0 pf 1 ilen 0 fcs 0x1c 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): UA: cr 1 dlci 0 pf 1 ilen 0 fcs 0xd7 
< ACL data: handle 40 flags 0x02 dlen 18
    L2CAP(d): cid 0x0046 len 14 [psm 3]
      RFCOMM(s): PN CMD: cr 1 dlci 0 pf 0 ilen 10 fcs 0x70 mcc_len 8
      dlci 18 frame_type 0 credit_flow 15 pri 0 ack_timer 0
      frame_size 667 max_retrans 0 credits 7
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 16
> ACL data: handle 40 flags 0x01 dlen 2
    L2CAP(d): cid 0x0040 len 14 [psm 3]
      RFCOMM(s): PN RSP: cr 0 dlci 0 pf 0 ilen 10 fcs 0xaa mcc_len 8
      dlci 18 frame_type 0 credit_flow 14 pri 0 ack_timer 0
      frame_size 667 max_retrans 0 credits 3
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0046 len 4 [psm 3]
      RFCOMM(s): SABM: cr 1 dlci 18 pf 1 ilen 0 fcs 0x32 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): UA: cr 1 dlci 18 pf 1 ilen 0 fcs 0xf9 
< ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0046 len 8 [psm 3]
      RFCOMM(s): MSC CMD: cr 1 dlci 0 pf 0 ilen 4 fcs 0x70 mcc_len 2
      dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 1 b2 1 b3 0 len 0
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 9
    L2CAP(d): cid 0x0046 len 5 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 1 ilen 0 fcs 0xd2 credits 33
< ACL data: handle 40 flags 0x02 dlen 15
    L2CAP(d): cid 0x0046 len 11 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 7 fcs 0xce 
      0000: 80 00 07 10 00 04 00                              .......
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(s): MSC CMD: cr 0 dlci 0 pf 0 ilen 4 fcs 0xaa mcc_len 2
      dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 1 b2 1 b3 0 len 0
< ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0046 len 8 [psm 3]
      RFCOMM(s): MSC RSP: cr 1 dlci 0 pf 0 ilen 4 fcs 0x70 mcc_len 2
      dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 1 b2 1 b3 0 len 0
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(s): MSC RSP: cr 0 dlci 0 pf 0 ilen 4 fcs 0xaa mcc_len 2
      dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 1 b2 1 b3 0 len 0
> ACL data: handle 40 flags 0x02 dlen 9
    L2CAP(d): cid 0x0040 len 5 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 0 fcs 0x8 credits 4
> ACL data: handle 40 flags 0x02 dlen 16
    L2CAP(d): cid 0x0040 len 12 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 7 fcs 0x8 credits 1
      0000: a0 00 07 10 00 0f a0                              .......
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0046 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 01 00 19 00 6f  00 62 00 65 00 78 00 73  .......o.b.e.x.s
      0010: 00 65 00 72 00 76 00 65  00 72 00 00 c3 00 01 1d  .e.r.v.e.r......
      0020: 72 48 03 df 7f 45 4c 46  01 01 01 61 00 00 00 00  rH...ELF...a....
      0030: 00 00 00 00 02 00 28 00  01 00 00 00 18 89 00 00  ......(.........
      0040: 34 00 00 00 b4 f7 00 00  02 00 00 00 34 00 20 00  4...........4. .
      0050: 06 00 28 00 1d 00 1a 00  06 00 00 00 34 00 00 00  ..(.........4...
      0060: 34 80 00 00 34 80 00 00  c0 00 00 00 c0 00 00 00  4...4...........
      0070: 05 00 00 00 04 00 00 00  03 00 00 00 f4 00 00 00  ................
      0080: f4 80 00 00 f4 80 00 00  13 00 00 00 13 00 00 00  ................
      0090: 04 00 00 00 01 00 00 00  01 00 00 00 00 00 00 00  ................
      00a0: 00 80 00 00 00 80 00 00  8c 52 00 00 8c 52 00 00  .........R...R..
      00b0: 05 00 00 00 00 80 00 00  01 00 00 00 8c 52 00 00  .............R..
      00c0: 8c 52 01 00 8c 52 01 00  5c 01 00 00 68 01 00 00  .R...R..\...h...
      00d0: 06 00 00 00 00 80 00 00  02 00 00 00 48 53 00 00  ............HS..
      00e0: 48 53 01 00 48 53 01 00  a0 00 00 00 a0 00 00 00  HS..HS..........
      00f0: 06 00 00 00 04 00 00 00  04 00 00 00 10 01 00 00  ................
      0100: 10 81 00 00 10 81 00 00  20 00 00 00 20 00 00 00  ........ ... ...
      0110: 04 00 00 00 10 00 00 00  2f 6c 69 62 2f 6c 64 2d  ......../lib/ld-
      0120: 6c 69 6e 75 78 2e 73 6f  2e 32 00 00 00 00 00 00  linux.so.2......
      0130: 00 00 00 00 04 00 00 00  10 00 00 00 01 00 00 00  ................
      0140: 47 4e 55 00 00 00 00 00  02 00 00 00 00 00 00 00  GNU.............
      0150: 00 00 00 00 11 00 00 00  24 00 00 00 00 00 00 00  ........$.......
      0160: 00 00 00 00 20 00 00 00  18 00 00 00 12 00 00 00  .... ...........
      0170: 00 00 00 00 1d 00 00 00  21 00 00 00 1c 00 00 00  ........!.......
      0180: 05 00 00 00 1f 00 00 00  00 00 00 00 23 00 00 00  ............#...
      0190: 1e 00 00 00 16 00 00 00  22 00 00 00 00 00 00 00  ........".......
      01a0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
      01b0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
      01c0: 02 00 00 00 07 00 00 00  00 00 00 00 03 00 00 00  ................
      01d0: 09 00 00 00 0b 00 00 00  01 00 00 00 0d 00 00 00  ................
      01e0: 00 00 00 00 08 00 00 00  10 00 00 00 0a 00 00 00  ................
      01f0: 00 00 00 00 0f 00 00 00  06 00 00 00 0c 00 00 00  ................
      0200: 04 00 00 00 15 00 00 00  00 00 00 00 11 00 00 00  ................
      0210: 17 00 00 00 14 00 00 00  1b 00 00 00 19 00 00 00  ................
      0220: 0e 00 00 00 13 00 00 00  00 00 00 00 1a 00 00 00  ................
      0230: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
      0240: b1 00 00 00 18 87 00 00  b4 00 00 00 12 00 00 00  ................
      0250: 0f 01 00 00 28 87 00 00  e8 00 00 00 12 00 00 00  ....(...........
      0260: 70 00 00 00 38 87 00 00  10 00 00 00 12 00 00 00  p...8...........
      0270: 16 01 00 00 48 87 00 00  10 00 00 00 12 00 00 00  ....H...........
      0280: 3f 00 00 00 58 87 00 00  dc 00 00 00 12 00 00 00  ?...X...........
      0290: 76 00 00 00 68 87 00 00  20 00 00                 v...h... ..
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0046 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 00 12 00 00 00 8e 00 00  00 78 87 00 00 ec 00 00  .........x......
      0010: 00 12 00 00 00 54 00 00  00 88 87 00 00 1c 00 00  .....T..........
      0020: 00 12 00 00 00 61 00 00  00 98 87 00 00 24 00 00  .....a.......$..
      0030: 00 12 00 00 00 aa 00 00  00 a8 87 00 00 24 00 00  .............$..
      0040: 00 12 00 00 00 46 00 00  00 b8 87 00 00 88 02 00  .....F..........
      0050: 00 12 00 00 00 30 00 00  00 c8 87 00 00 3c 01 00  .....0.......<..
      0060: 00 12 00 00 00 cf 00 00  00 d8 87 00 00 24 00 00  .............$..
      0070: 00 12 00 00 00 c8 00 00  00 e8 53 01 00 04 00 00  ..........S.....
      0080: 00 11 00 16 00 5b 00 00  00 e8 87 00 00 ec 01 00  .....[..........
      0090: 00 12 00 00 00 da 00 00  00 f8 87 00 00 80 03 00  ................
      00a0: 00 12 00 00 00 83 00 00  00 08 88 00 00 24 00 00  .............$..
      00b0: 00 12 00 00 00 03 01 00  00 18 88 00 00 60 00 00  .............`..
      00c0: 00 12 00 00 00 f1 00 00  00 28 88 00 00 08 01 00  .........(......
      00d0: 00 12 00 00 00 a2 00 00  00 38 88 00 00 ac 02 00  .........8......
      00e0: 00 12 00 00 00 21 00 00  00 48 88 00 00 40 00 00  .....!...H...@..
      00f0: 00 12 00 00 00 7e 00 00  00 58 88 00 00 24 00 00  .....~...X...$..
      0100: 00 12 00 00 00 38 00 00  00 68 88 00 00 a4 00 00  .....8...h......
      0110: 00 12 00 00 00 68 00 00  00 78 88 00 00 4c 00 00  .....h...x...L..
      0120: 00 12 00 00 00 0a 01 00  00 88 88 00 00 10 00 00  ................
      0130: 00 12 00 00 00 1c 01 00  00 98 88 00 00 0c 01 00  ................
      0140: 00 12 00 00 00 b9 00 00  00 a8 88 00 00 9c 00 00  ................
      0150: 00 12 00 00 00 28 00 00  00 b8 88 00 00 24 00 00  .....(.......$..
      0160: 00 12 00 00 00                                    .....
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0046 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 9a 00  00 00 c8 88 00 00 d8 00  ...H............
      0010: 00 00 12 00 00 00 e2 00  00 00 14 cf 00 00 04 00  ................
      0020: 00 00 11 00 0f 00 c0 00  00 00 d8 88 00 00 20 00  .............. .
      0030: 00 00 12 00 00 00 4d 00  00 00 e8 88 00 00 24 00  ......M.......$.
      0040: 00 00 12 00 00 00 95 00  00 00 f8 88 00 00 10 00  ................
      0050: 00 00 12 00 00 00 01 00  00 00 00 00 00 00 00 00  ................
      0060: 00 00 20 00 00 00 1a 00  00 00 08 89 00 00 28 00  .. ...........(.
      0070: 00 00 12 00 00 00 00 5f  5f 67 6d 6f 6e 5f 73 74  .......__gmon_st
      0080: 61 72 74 5f 5f 00 6c 69  62 63 2e 73 6f 2e 36 00  art__.libc.so.6.
      0090: 73 74 72 63 70 79 00 70  72 69 6e 74 66 00 63 6f  strcpy.printf.co
      00a0: 6e 6e 65 63 74 00 6d 65  6d 6d 6f 76 65 00 6d 65  nnect.memmove.me
      00b0: 6d 63 70 79 00 70 65 72  72 6f 72 00 6d 61 6c 6c  mcpy.perror.mall
      00c0: 6f 63 00 73 6f 63 6b 65  74 00 73 65 6c 65 63 74  oc.socket.select
      00d0: 00 61 62 6f 72 74 00 61  63 63 65 70 74 00 73 74  .abort.accept.st
      00e0: 72 72 63 68 72 00 77 72  69 74 65 00 66 70 72 69  rrchr.write.fpri
      00f0: 6e 74 66 00 62 69 6e 64  00 73 65 74 73 6f 63 6b  ntf.bind.setsock
      0100: 6f 70 74 00 73 69 67 6e  61 6c 00 72 65 61 64 00  opt.signal.read.
      0110: 73 74 72 6e 63 70 79 00  72 65 61 6c 6c 6f 63 00  strncpy.realloc.
      0120: 6c 69 73 74 65 6e 00 73  74 72 6e 63 61 74 00 6d  listen.strncat.m
      0130: 65 6d 73 65 74 00 73 70  72 69 6e 74 66 00 73 74  emset.sprintf.st
      0140: 64 65 72 72 00 67 65 74  73 6f 63 6b 6f 70 74 00  derr.getsockopt.
      0150: 5f 5f 78 73 74 61 74 00  5f 49 4f 5f 73 74 64 69  __xstat._IO_stdi
      0160: 6e 5f 75 73 65 64 00 5f  5f 6c 69 62 63 5f 73 74  n_used.__libc_st
      0170: 61 72 74 5f 6d 61 69 6e  00 73 74 72 6c 65 6e 00  art_main.strlen.
      0180: 6f 70 65 6e 00 73 74 72  63 68 72 00 63 6c 6f 73  open.strchr.clos
      0190: 65 00 66 72 65 65 00 47  4c 49 42 43 5f 32 2e 30  e.free.GLIBC_2.0
      01a0: 00 00 00 00 02 00 02 00  02 00 02 00 02 00 02 00  ................
      01b0: 02 00 02 00 02 00 02 00  02 00 02 00 02 00 02 00  ................
      01c0: 02 00 02 00 02 00 02 00  02 00 02 00 02 00 02 00  ................
      01d0: 02 00 02 00 02 00 02 00  02 00 02 00 02 00 01 00  ................
      01e0: 02 00 02 00 02 00 00 00  02 00 01 00 01 00 10 00  ................
      01f0: 00 00 10 00 00 00 00 00  00 00 10 69 69 0d 00 00  ...........ii...
      0200: 02 00 21 01 00 00 00 00  00 00 44 53 01 00 15 22  ..!.......DS..."
      0210: 00 00 e8 53 01 00 14 0e  00 00 c4 52 01 00 16 01  ...S.......R....
      0220: 00 00 c8 52 01 00 16 02  00 00 cc 52 01 00 16 03  ...R.......R....
      0230: 00 00 d0 52 01 00 16 04  00 00 d4 52 01 00 16 05  ...R.......R....
      0240: 00 00 d8 52 01 00 16 06  00 00 dc 52 01 00 16 07  ...R.......R....
      0250: 00 00 e0 52 01 00 16 08  00 00 e4 52 01 00 16 09  ...R.......R....
      0260: 00 00 e8 52 01 00 16 0a  00 00 ec 52 01 00 16 0b  ...R.......R....
      0270: 00 00 f0 52 01 00 16 0c  00 00 f4 52 01 00 16 0d  ...R.......R....
      0280: 00 00 f8 52 01 00 16 0f  00 00 fc 52 01 00 16 10  ...R.......R....
      0290: 00 00 00 53 01 00 16 11  00 00 04                 ...S.......
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0046 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 53 01 00 16 12 00 00 08  53 01 00 16 13 00 00 0c  S.......S.......
      0010: 53 01 00 16 14 00 00 10  53 01 00 16 15 00 00 14  S.......S.......
      0020: 53 01 00 16 16 00 00 18  53 01 00 16 17 00 00 1c  S.......S.......
      0030: 53 01 00 16 18 00 00 20  53 01 00 16 19 00 00 24  S...... S......$
      0040: 53 01 00 16 1a 00 00 28  53 01 00 16 1b 00 00 2c  S......(S......,
      0050: 53 01 00 16 1c 00 00 30  53 01 00 16 1d 00 00 34  S......0S......4
      0060: 53 01 00 16 1f 00 00 38  53 01 00 16 20 00 00 3c  S......8S... ..<
      0070: 53 01 00 16 21 00 00 40  53 01 00 16 23 00 00 0d  S...!..@S...#...
      0080: c0 a0 e1 00 d8 2d e9 04  b0 4c e2 92 00 00 eb ec  .....-...L......
      0090: 11 00 eb 00 a8 1b e9 04  e0 2d e5 10 e0 9f e5 0e  .........-......
      00a0: e0 8f e0 08 f0 be e5 04  c0 9f e5 0c c0 8f e0 00  ................
      00b0: f0 9c e5 a0 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ................
      00c0: f0 9c e5 94 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ................
      00d0: f0 9c e5 88 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ................
      00e0: f0 9c e5 7c cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...|............
      00f0: f0 9c e5 70 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...p............
      0100: f0 9c e5 64 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...d............
      0110: f0 9c e5 58 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...X............
      0120: f0 9c e5 4c cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...L............
      0130: f0 9c e5 40 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...@............
      0140: f0 9c e5 34 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...4............
      0150: f0 9c e5 28 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...(............
      0160: f0 9c e5 1c cb                                    .....
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0046 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 00 00  04 c0 9f e5 0c c0 8f e0  ...H............
      0010: 00 f0 9c e5 10 cb 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0020: 00 f0 9c e5 04 cb 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0030: 00 f0 9c e5 f8 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0040: 00 f0 9c e5 ec ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0050: 00 f0 9c e5 e0 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0060: 00 f0 9c e5 d4 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0070: 00 f0 9c e5 c8 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0080: 00 f0 9c e5 bc ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0090: 00 f0 9c e5 b0 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00a0: 00 f0 9c e5 a4 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00b0: 00 f0 9c e5 98 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00c0: 00 f0 9c e5 8c ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00d0: 00 f0 9c e5 80 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00e0: 00 f0 9c e5 74 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....t...........
      00f0: 00 f0 9c e5 68 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....h...........
      0100: 00 f0 9c e5 5c ca 00 00  04 c0 9f e5 0c c0 8f e0  ....\...........
      0110: 00 f0 9c e5 50 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....P...........
      0120: 00 f0 9c e5 44 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....D...........
      0130: 00 f0 9c e5 38 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....8...........
      0140: 00 f0 9c e5 2c ca 00 00  00 b0 a0 e3 02 00 bd e8  ....,...........
      0150: 0d 20 a0 e1 01 00 2d e9  10 00 9f e5 01 00 2d e9  . ....-.......-.
      0160: 0c 00 9f e5 0c 30 9f e5  ba ff ff eb a9 ff ff eb  .....0..........
      0170: 00 cf 00 00 04 8a 00 00  f0 86 00 00 0d c0 a0 e1  ................
      0180: 00 dc 2d e9 20 a0 9f e5  20 30 9f e5 0a a0 8f e0  ..-. ... 0......
      0190: 03 30 9a e7 04 b0 4c e2  00 00 53 e3 00 ac 1b 09  .0....L...S.....
      01a0: 0f e0 a0 e1 03 f0 a0 e1  00 ac 1b e9 54 c9 00 00  ............T...
      01b0: 8c 00 00 00 0d c0 a0 e1  30 d8 2d e9 58 20 9f e5  ........0.-.X ..
      01c0: 04 b0 4c e2 00 30 92 e5  02 50 a0 e1 00 00 53 e3  ..L..0...P....S.
      01d0: 30 a8 1b 19 44 10 9f e5  00 30 91 e5 00 20 93 e5  0...D....0... ..
      01e0: 00 00 52 e3 09 00 00 0a  01 40 a0 e1 00 30 94 e5  ..R......@...0..
      01f0: 04 30 83 e2 00 30 84 e5  0f e0 a0 e1 04 f0 13 e5  .0...0..........
      0200: 00 20 94 e5 00 30 92 e5  00 00 53 e3 f6 ff ff 1a  . ...0....S.....
      0210: 01 30 a0 e3 00 30 85 e5  30 a8 1b e9 94 52 01 00  .0...0..0....R..
      0220: 90 52 01 00 0d c0 a0 e1  00 d8 2d e9 04 b0 4c e2  .R........-...L.
      0230: 00 a8 1b e9 0d c0 a0 e1  00 d8 2d e9 04 b0 4c e2  ..........-...L.
      0240: 0c d0 4d e2 10 00 0b e5  14 10 0b e5 00 00 00 ea  ..M.............
      0250: 28 00 00 ea 04 00 a0 e3  88 10 9f e5 00 20 a0 e3  (............ ..
      0260: 0e 02 00 eb 00 30 a0 e1  7c 20 9f e5 00 30 82 e5  .....0..| ...0..
      0270: 10 30 1b e5 01 00 53 e3  13 00 00 1a 68 30 9f e5  .0....S.....h0..
      0280: 00 00 93 e5 00 10 a0 e3  03 20 a0 e3 d3 04 00 eb  ......... ......
      0290: 58 00 9f e5 77 ff ff eb  4c 30 9f                 X...w...L0.
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0046 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: e5 00 00 93 e5 35 0f 00  eb 48 30 9f e5 00 20 93  .....5...H0... .
      0010: e5 00 00 52 e3 00 00 00  0a 04 00 00 ea 2c 30 9f  ...R.........,0.
      0020: e5 00 00 93 e5 01 10 a0  e3 27 03 00 eb f5 ff ff  .........'......
      0030: ea 20 30 9f e5 00 20 a0  e3 00 20 83 e5 0c 30 9f  . 0... ... ...0.
      0040: e5 00 00 93 e5 49 02 00  eb d8 ff ff ea 1c 8d 00  .....I..........
      0050: 00 9c 52 01 00 18 cf 00  00 98 52 01 00 00 a8 1b  ..R.......R.....
      0060: e9 0d c0 a0 e1 f0 df 2d  e9 04 b0 4c e2 00 a0 a0  .......-...L....
      0070: e3 18 d0 4d e2 3c a0 0b  e5 38 00 0b e5 0a 80 a0  ...M.<...8......
      0080: e1 0a 40 a0 e1 d8 90 9f  e5 29 70 4b e2 30 60 4b  ..@......)pK.0`K
      0090: e2 34 50 4b e2 24 00 00  ea 29 30 5b e5 48 00 53  .4PK.$...)0[.H.S
      00a0: e3 03 10 a0 e1 08 00 00  0a 02 00 00 ca 01 00 53  ...............S
      00b0: e3 09 00 00 0a 1a 00 00  ea c3 00 53 e3 12 00 00  ...........S....
      00c0: 0a cf 00 53 e3 12 00 00  0a 15 00 00 ea 30 30 1b  ...S.........00.
      00d0: e5 34 a0 1b e5 3c 30 0b  e5 13 00 00 ea 34 00 1b  .4...<0......4..
      00e0: e5 a0 0f 80 e0 c0 00 a0  e1 17 ff ff eb 00 40 50  ..............@P
      00f0: e2 0d 00 00 0a 30 10 1b  e5 04 00 a0 e1 34 20 1b  .....0.......4 .
      0100: e5 04 80 a0 e1 e2 03 00  eb 07 00 00 ea 54 00 9f  .............T..
      0110: e5 00 00 00 ea 50 00 9f  e5 30 10 1b e5 2e ff ff  .....P...0......
      0120: eb 01 00 00 ea 44 00 9f  e5 2b ff ff eb 00 50 8d  .....D...+....P.
      0130: e5 38 10 1b e5 07 20 a0  e1 00 00 99 e5 06 30 a0  .8.... .......0.
      0140: e1 6f 03 00 eb 00 00 50  e3 d2 ff ff 1a 3c 30 1b  .o.....P.....<0.
      0150: e5 00 00 53 e3 07 00 00  1a 14 00 9f e5 1e ff ff  ...S............
      0160: eb 13 00 00 ea                                    .....
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0046 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 9c 52  01 00 34 cf 00 00 48 cf  ...H...R..4...H.
      0010: 00 00 5c cf 00 00 7c cf  00 00 00 00 58 e3 03 00  ..\...|.....X...
      0020: 00 1a 24 00 9f e5 08 10  a0 e1 20 80 9f e5 12 ff  ..$....... .....
      0030: ff eb 08 00 a0 e1 3c 10  1b e5 0a 20 a0 e1 61 01  ......<.... ..a.
      0040: 00 eb 04 00 a0 e1 20 ff  ff eb 01 00 00 ea 98 cf  ...... .........
      0050: 00 00 c8 cf 00 00 f0 af  1b e9 0d c0 a0 e1 10 d8  ................
      0060: 2d e9 04 b0 4c e2 00 40  a0 e1 02 10 a0 e1 05 00  -...L..@........
      0070: 51 e3 01 f1 9f 97 19 00  00 ea 94 8c 00 00 a0 8c  Q...............
      0080: 00 00 78 8c 00 00 ac 8c  00 00 ac 8c 00 00 5c 8c  ..x...........\.
      0090: 00 00 64 00 9f e5 f8 fe  ff eb 04 00 a0 e1 10 10  ..d.............
      00a0: a0 e3 20 20 a0 e3 66 03  00 eb 10 a8 1b e9 04 00  ..  ..f.........
      00b0: a0 e1 10 10 a0 e3 20 20  a0 e3 61 03 00 eb 04 00  ......  ..a.....
      00c0: a0 e1 8e ff ff eb 10 a8  1b e9 04 00 a0 e1 20 10  .............. .
      00d0: a0 e3 f2 ff ff ea 04 00  a0 e1 20 10 a0 e3 ef ff  .......... .....
      00e0: ff ea 18 00 9f e5 e4 fe  ff eb 04 00 a0 e1 51 10  ..............Q.
      00f0: a0 e3 01 20 a0 e1 52 03  00 eb 10 a8 1b e9 e0 cf  ... ..R.........
      0100: 00 00 fc cf 00 00 0d c0  a0 e1 00 d8 2d e9 04 b0  ............-...
      0110: 4c e2 01 00 51 e3 04 30  9f 05 00 10 83 05 00 a8  L...Q..0........
      0120: 1b e9 98 52 01 00 0d c0  a0 e1 00 d8 2d e9 14 30  ...R........-..0
      0130: 9f e5 00 20 83 e5 04 b0  4c e2 0c 20 9f e5 01 30  ... ....L.. ...0
      0140: a0 e3 00 30 82 e5 00 a8  1b e9 a0 52 01 00 98 52  ...0.......R...R
      0150: 01 00 0d c0 a0 e1 70 d8  2d e9 04 b0 4c e2 01 40  ......p.-...L..@
      0160: a0 e1 02 60 a0 e1 03 10  a0 e1 04 50 9b e5 04 00  ...`.......P....
      0170: 51 e3 01 f1 9f 97 2c 00  00 ea 58 8d 00 00 98 8d  Q.....,...X.....
      0180: 00 00 d0 8d 00 00 64 8d  00 00 e0 8d 00 00 a4 00  ......d.........
      0190: 9f e5 b9 fe ff eb 70 a8  1b e9 9c 00 9f e5 b6 fe  ......p.........
      01a0: ff eb 00 00 56 e3 04 00  00 1a 04 00 a0 e1 08 20  ....V.......... 
      01b0: 9b e5 05 10 a0 e1 da ff  ff eb 70 a8 1b e9 04 00  ..........p.....
      01c0: a0 e1 05 10 a0 e1 ce ff  ff eb 70 a8 1b e9 02 00  ..........p.....
      01d0: 55 e3 06 00 00 ca 00 00  55 e3 04 00 00 ba 04 00  U.......U.......
      01e0: a0 e1 10 10 a0 e3 20 20  a0 e3 15 03 00 eb 70 a8  ......  ......p.
      01f0: 1b e9 04 00 a0 e1 51 10  a0 e3 01 20 a0 e1 10 03  ......Q.... ....
      0200: 00 eb 70 a8 1b e9 04 00  a0 e1 05 20 a0 e1 91 ff  ..p........ ....
      0210: ff eb 70 a8 1b e9 24 00  9f e5 97 fe ff eb 20 20  ..p...$.......  
      0220: 9f e5 01 30 a0 e3 00 30  82 e5 70 a8 1b e9 14 00  ...0...0..p.....
      0230: 9f e5 91 fe ff eb 70 a8  1b e9 24 d0 00 00 28 d0  ......p...$...(.
      0240: 00 00 2c d0 00 00 98 52  01 00 60 d0 00 00 0d c0  ..,....R..`.....
      0250: a0 e1 30 d8 2d e9 40 20  9f e5 00 30 92 e5 04 b0  ..0.-.@ ...0....
      0260: 4c e2 00 00 53 e3 09 00  00 1a 02 50 a0 e1 2c 40  L...S......P..,@
      0270: 9f e5 00 00 94 e5 0a 10  a0 e3 3b 02 00 eb 00 00  ..........;.....
      0280: 50 e3 30 a8 1b b9 00 30  95 e5 00 00 53 e3 f7 ff  P.0....0....S...
      0290: ff 0a 0c 30 9f e5 00 00  93 e5 30                 ...0......0
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0046 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: a8 1b e9 98 52 01 00 9c  52 01 00 a0 52 01 00 0d  ....R...R...R...
      0010: c0 a0 e1 00 d8 2d e9 04  b0 4c e2 6c 02 00 eb e3  .....-...L.l....
      0020: ff ff eb 08 20 9f e5 00  30 a0 e3 00 30 82 e5 00  .... ...0...0...
      0030: a8 1b e9 98 52 01 00 0d  c0 a0 e1 00 d8 2d e9 04  ....R........-..
      0040: b0 4c e2 00 10 a0 e1 03  00 a0 e3 64 20 4b e2 58  .L.........d K.X
      0050: d0 4d e2 4e fe ff eb 38  00 1b e5 00 a8 1b e9 0d  .M.N...8........
      0060: c0 a0 e1 f0 d8 2d e9 04  b0 4c e2 00 40 a0 e1 01  .....-...L..@...
      0070: 70 a0 e1 ef ff ff eb 00  20 a0 e1 00 20 87 e5 64  p....... ... ..d
      0080: 00 9f e5 04 10 a0 e1 55  fe ff eb 04 00 a0 e1 00  .......U........
      0090: 10 a0 e3 01 20 a0 e1 61  fe ff eb 00 60 a0 e1 01  .... ..a....`...
      00a0: 00 76 e3 00 00 a0 e3 f0  a8 1b 09 00 00 97 e5 27  .v.............'
      00b0: fe ff eb 00 50 50 e2 09  00 00 0a 06 00 a0 e1 00  ....PP..........
      00c0: 20 97 e5 05 10 a0 e1 71  fe ff eb 00 40 a0 e1 06   ......q....@...
      00d0: 00 a0 e1 02 fe ff eb 05  00 a0 e1 00 40 87 e5 f0  ............@...
      00e0: a8 1b e9 05 00 a0 e1 f0  a8 1b e9 70 d0 00 00 0d  ...........p....
      00f0: c0 a0 e1 f0 dd 2d e9 04  b0 4c e2 00 70 a0 e1 01  .....-...L..p...
      0100: 60 a0 e1 06 00 a0 e1 f0  10 4b e2 d4 d0 4d e2 d2  `........K...M..
      0110: ff ff eb 00 80 50 e2 08  00 a0 01 7e 00 00 0a 06  .....P.....~....
      0120: 00 a0 e1 2e 10 a0 e3 e5  fd ff eb 00 00 50 e3 d8  .............P..
      0130: a0 9f e5 4b 00 00 0a 01  30 f0 e5 76 20 43 e2 76  ...K....0..v C.v
      0140: 00 53 e3 07 00 00 1a 01  30 d0 e5 63 20 43 e2 63  .S......0..c C.c
      0150: 00 53 e3 03 00 00 1a 02  30 d0 e5 66 20 43 e2 66  .S......0..f C.f
      0160: 00 53 e3 03 20                                    .S.. 
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0046 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd d0 05  00 00 52 e3 03 00 00 1a  ...H......R.....
      0010: 9c 00 9f e5 9c a0 9f e5  19 fe ff eb 39 00 00 ea  ............9...
      0020: 00 30 d0 e5 76 20 43 e2  76 00 53 e3 03 10 a0 e1  .0..v C.v.S.....
      0030: 07 00 00 1a 01 30 d0 e5  63 20 43 e2 63 00 53 e3  .....0..c C.c.S.
      0040: 03 00 00 1a 02 30 d0 e5  73 20 43 e2 73 00 53 e3  .....0..s C.s.S.
      0050: 03 20 d0 05 00 00 52 e3  03 00 00 1a 58 00 9f e5  . ....R.....X...
      0060: 58 a0 9f e5 06 fe ff eb  26 00 00 ea 74 20 41 e2  X.......&...t A.
      0070: 74 00 51 e3 07 00 00 1a  01 30 d0 e5 78 20 43 e2  t.Q......0..x C.
      0080: 78 00 53 e3 03 00 00 1a  02 30 d0 e5 74 20 43 e2  x.S......0..t C.
      0090: 74 00 53 e3 03 20 d0 05  00 00 52 e3 09 00 00 1a  t.S.. ....R.....
      00a0: 1c 00 9f e5 04 a0 9f e5  f5 fd ff eb 15 00 00 ea  ................
      00b0: 6f 6d 65 6d 88 d0 00 00  72 64 64 61 ac d0 00 00  omem....rdda....
      00c0: 65 74 61 64 cc d0 00 00  70 20 41 e2 70 00 51 e3  etad....p A.p.Q.
      00d0: 07 00 00 1a 01 30 d0 e5  72 20 43 e2 72 00 53 e3  .....0..r C.r.S.
      00e0: 03 00 00 1a 02 30 d0 e5  63 20 43 e2 63 00 53 e3  .....0..c C.c.S.
      00f0: 03 20 d0 05 00 00 52 e3  02 00 00 1a bc 00 9f e5  . ....R.........
      0100: bc a0 9f e5 de fd ff eb  07 00 a0 e1 02 10 a0 e3  ................
      0110: f4 01 00 eb 00 50 a0 e1  ec 40 4b e2 04 00 a0 e1  .....P...@K.....
      0120: 06 10 a0 e1 c8 20 a0 e3  b0 02 00 eb 00 00 8d e5  ..... ..........
      0130: 00 60 a0 e3 04 60 8d e5  07 00 a0 e1 05 10 a0 e1  .`...`..........
      0140: 01 20 a0 e3 04 30 a0 e1  08 02 00 eb 04 40 a0 e3  . ...0.......@..
      0150: 50 00 8d e8 07 00 a0 e1  05 10 a0 e1 f0 30 1b e5  P............0..
      0160: c3 20 a0 e3 01 02 00 eb  58 30 9f e5 00 20 93 e5  . ......X0... ..
      0170: 01 00 52 e3 05 00 00 0a  50 00 8d e8 07 00 a0 e1  ..R.....P.......
      0180: 05 10 a0 e1 cf 20 a0 e3  0a 30 a0 e1 f7 01 00 eb  ..... ...0......
      0190: 04 60 8d e5 f0 30 1b e5  00 30 8d e5 07 00 a0 e1  .`...0...0......
      01a0: 05 10 a0 e1 48 20 a0 e3  08 30 a0 e1 ef 01 00 eb  ....H ...0......
      01b0: 08 00 a0 e1 c6 fd ff eb  05 00 a0 e1 02 00 00 ea  ................
      01c0: ec d0 00 00 68 63 6e 6c  a4 52 01 00 f0 ad 1b e9  ....hcnl.R......
      01d0: 0d c0 a0 e1 f0 d9 2d e9  04 b0 4c e2 00 50 a0 e1  ......-...L..P..
      01e0: 12 4e 4b e2 04 00 a0 e1  01 80 a0 e1 00 10 a0 e3  .NK.............
      01f0: 02 70 a0 e1 ff 20 a0 e3  01 dc 4d e2 b8 fd ff eb  .p... ....M.....
      0200: 88 00 9f e5 05 10 a0 e1  9d fd ff eb 80 10 9f e5  ................
      0210: 04 00 a0 e1 be fd ff eb  05 00 a0 e1 2f 10 a0 e3  ............/...
      0220: a3 fd ff eb 00 10 50 e2  04 60 a0 e1 05 10 a0 01  ......P..`......
      0230: 01 10 81 12 06 00 a0 e1  fa 20 a0 e3 44 fd ff eb  ......... ..D...
      0240: 06 00 a0 e1 42 10 a0 e3  6d 2f a0 e3 02 20 82 e2  ....B...m/... ..
      0250: 9b fd ff eb 00 50 50 e2  0f 00 00 ba 05 00 a0 e1  .....PP.........
      0260: 08 10 a0 e1 07 20 a0 e1  41 fd ff eb 00 40 a0 e1  ..... ..A....@..
      0270: 05 00 a0 e1 42 fd ff eb  06 10 a0 e1 14 00 9f e5  ....B...........
      0280: 04 20 a0 e1 7e fd ff eb  04 00 a0 e1 05 00 00 ea  . ..~...........
      0290: 0c d1 00 00 1c d1 00 00  24 d1 00                 ........$..
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0046 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 00 06 00 a0 e1 3b fd ff  eb 00 00 e0 e3 f0 a9 1b  .....;..........
      0010: e9 0d c0 a0 e1 f0 d8 2d  e9 04 b0 4c e2 00 70 a0  .......-...L..p.
      0020: e1 02 50 a0 e1 00 60 51  e2 00 00 a0 e3 f0 a8 1b  ..P...`Q........
      0030: 09 a4 00 80 e2 47 fd ff  eb 00 40 50 e2 04 00 a0  .....G....@P....
      0040: 01 f0 a8 1b 09 04 00 a0  e1 00 10 a0 e3 a4 20 a0  .............. .
      0050: e3 7c fd ff eb 30 60 84  e5 a5 30 a0 e1 01 30 03  .|...0`...0...0.
      0060: e2 18 30 84 e5 25 21 a0  e1 01 20 02 e2 1c 20 84  ..0..%!... ... .
      0070: e5 a5 31 a0 e1 01 30 03  e2 20 30 84 e5 00 20 e0  ..1...0.. 0... .
      0080: e3 08 20 84 e5 0c 20 84  e5 10 20 84 e5 80 30 a0  .. ... ... ...0.
      0090: e3 14 30 84 e5 34 70 84  e5 00 50 a0 e3 38 50 84  ..0..4p...P..8P.
      00a0: e5 01 0b a0 e3 65 0d 00  eb 05 00 50 e1 28 00 84  .....e.....P.(..
      00b0: e5 13 00 00 0a 01 0b a0  e3 60 0d 00 eb 05 00 50  .........`.....P
      00c0: e1 24 00 84 e5 0e 00 00  0a 01 3b a0 e3 03 20 a0  .$........;... .
      00d0: e1 02 20 c4 e5 43 34 a0  e1 03 30 c4 e5 ff 20 a0  .. ..C4...0... .
      00e0: e3 00 20 c4 e5 01 50 c4  e5 04 50 c4 e5 05 30 c4  .. ...P...P...0.
      00f0: e5 0d 00 a0 e3 01 10 a0  e3 06 fd ff eb 04 00 a0  ................
      0100: e1 f0 a8 1b e9 24 00 94  e5 00 00 50 e3 00 00 00  .....$.....P....
      0110: 0a 7f 0d 00 eb 28 00 94  e5 00 00 50 e3 00 00 00  .....(.....P....
      0120: 0a 7b 0d 00 eb 04 00 a0  e1 42 fd ff eb 00 00 a0  .{.......B......
      0130: e3 f0 a8 1b e9 0d c0 a0  e1 00 d8 2d e9 04 b0 4c  ...........-...L
      0140: e2 00 c0 50 e2 00 00 e0  03 00 a8 1b 09 00 00 51  ...P...........Q
      0150: e3 07 00 00 0a 01 e0 a0  e1 0f 00 be e8 88 c0 8c  ................
      0160: e2 0f 00 ac e8                                    .....
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
*************************** File Transfer Part Removed ***********************
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0046 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 61 74 61 5f 73 74 61 72  74 00 67 5f 6e 65 74 62  ata_start.g_netb
      0010: 75 66 5f 70 75 74 5f 64  61 74 61 00 4f 42 45 58  uf_put_data.OBEX
      0020: 5f 54 72 61 6e 73 70 6f  72 74 44 69 73 63 6f 6e  _TransportDiscon
      0030: 6e 65 63 74 00 70 72 69  6e 74 66 40 40 47 4c 49  nect.printf@@GLI
      0040: 42 43 5f 32 2e 30 00 6f  62 65 78 5f 6f 62 6a 65  BC_2.0.obex_obje
      0050: 63 74 5f 72 65 61 64 73  74 72 65 61 6d 00 62 69  ct_readstream.bi
      0060: 6e 64 40 40 47 4c 49 42  43 5f 32 2e 30 00 5f 66  nd@@GLIBC_2.0._f
      0070: 69 6e 69 00 69 72 6f 62  65 78 5f 6c 69 73 74 65  ini.irobex_liste
      0080: 6e 00 6d 65 6d 63 70 79  40 40 47 4c 49 42 43 5f  n.memcpy@@GLIBC_
      0090: 32 2e 30 00 4f 42 45 58  5f 4f 62 6a 65 63 74 4e  2.0.OBEX_ObjectN
      00a0: 65 77 00 73 74 72 72 63  68 72 40 40 47 4c 49 42  ew.strrchr@@GLIB
      00b0: 43 5f 32 2e 30 00 6f 62  65 78 5f 63 6c 69 65 6e  C_2.0.obex_clien
      00c0: 74 00 4f 42 45 58 5f 52  65 73 70 6f 6e 73 65 54  t.OBEX_ResponseT
      00d0: 6f 53 74 72 69 6e 67 00  4f 42 45 58 5f 53 65 74  oString.OBEX_Set
      00e0: 43 75 73 74 6f 6d 44 61  74 61 00 4f 42 45 58 5f  CustomData.OBEX_
      00f0: 55 6e 69 63 6f 64 65 54  6f 43 68 61 72 00 69 6e  UnicodeToChar.in
      0100: 6f 62 65 78 5f 70 72 65  70 61 72 65 5f 6c 69 73  obex_prepare_lis
      0110: 74 65 6e 00 4f 42 45 58  5f 4f 62 6a 65 63 74 47  ten.OBEX_ObjectG
      0120: 65 74 4e 65 78 74 48 65  61 64 65 72 00 6f 62 65  etNextHeader.obe
      0130: 78 5f 69 6e 73 65 72 74  5f 63 6f 6e 6e 65 63 74  x_insert_connect
      0140: 66 72 61 6d 65 00 49 72  4f 42 45 58 5f 54 72 61  frame.IrOBEX_Tra
      0150: 6e 73 70 6f 72 74 43 6f  6e 6e 65 63 74 00 6f 70  nsportConnect.op
      0160: 65 6e 40 40 47                                    en@@G
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0046 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 82 03 40 49 03 3d 4c 49  42 43 5f 32 2e 30 00 67  ..@I.=LIBC_2.0.g
      0010: 5f 6e 65 74 62 75 66 5f  70 72 65 70 65 6e 64 5f  _netbuf_prepend_
      0020: 68 64 72 00 67 5f 6e 65  74 62 75 66 5f 74 72 69  hdr.g_netbuf_tri
      0030: 6d 00 4f 42 45 58 5f 48  61 6e 64 6c 65 49 6e 70  m.OBEX_HandleInp
      0040: 75 74 00 65 61 73 79 5f  72 65 61 64 66 69 6c 65  ut.easy_readfile
      0050: 00 67 5f 6e 65 74 62 75  66 5f 68 65 61 64 72 6f  .g_netbuf_headro
      0060: 6f 6d 00 4f 42 45 58 5f  4f 62 6a 65 63 74 53 65  om.OBEX_ObjectSe
      0070: 74 4e 6f 6e 48 64 72 44  61 74 61 00 4f 42 45 58  tNonHdrData.OBEX
      0080: 5f 47 65 74 46 44 00 62  74 6f 62 65 78 5f 64 69  _GetFD.btobex_di
      0090: 73 63 6f 6e 6e 65 63 74  5f 72 65 71 75 65 73 74  sconnect_request
      00a0: 00 5f 65 64 61 74 61 00  5f 47 4c 4f 42 41 4c 5f  ._edata._GLOBAL_
      00b0: 4f 46 46 53 45 54 5f 54  41 42 4c 45 5f 00 66 72  OFFSET_TABLE_.fr
      00c0: 65 65 40 40 47 4c 49 42  43 5f 32 2e 30 00 5f 65  ee@@GLIBC_2.0._e
      00d0: 6e 64 00 66 69 6e 69 73  68 65 64 00 77 61 69 74  nd.finished.wait
      00e0: 5f 66 6f 72 5f 72 73 70  00 6d 65 6d 73 65 74 40  _for_rsp.memset@
      00f0: 40 47 4c 49 42 43 5f 32  2e 30 00 63 6f 6e 6e 65  @GLIBC_2.0.conne
      0100: 63 74 40 40 47 4c 49 42  43 5f 32 2e 30 00 73 74  ct@@GLIBC_2.0.st
      0110: 72 6e 63 70 79 40 40 47  4c 49 42 43 5f 32 2e 30  rncpy@@GLIBC_2.0
      0120: 00 6f 62 65 78 5f 74 72  61 6e 73 70 6f 72 74 5f  .obex_transport_
      0130: 63 6f 6e 6e 65 63 74 5f  72 65 71 75 65 73 74 00  connect_request.
      0140: 69 72 6f 62 65 78 5f 70  72 65 70 61 72 65 5f 63  irobex_prepare_c
      0150: 6f 6e 6e 65 63 74 00 69  6e 6f 62 65 78 5f 6c 69  onnect.inobex_li
      0160: 73 74 65 6e 00 4f 42 45  58 5f 43 6c 65 61 6e 75  sten.OBEX_Cleanu
      0170: 70 00 4f 42 45 58 5f 4f  62 6a 65 63 74 47 65 74  p.OBEX_ObjectGet
      0180: 4e 6f 6e 48 64 72 44 61  74 61 00 62 75 69 6c 64  NonHdrData.build
      0190: 5f 6f 62 6a 65 63 74 5f  66 72 6f 6d 5f 66 69 6c  _object_from_fil
      01a0: 65 00 70 75 74 5f 64 6f  6e 65 00 6f 62 65 78 5f  e.put_done.obex_
      01b0: 72 65 73 70 6f 6e 73 65  5f 72 65 71 75 65 73 74  response_request
      01c0: 00 5f 49 4f 5f 73 74 64  69 6e 5f 75 73 65 64 00  ._IO_stdin_used.
      01d0: 6f 62 65 78 5f 6f 62 6a  65 63 74 5f 6e 65 77 00  obex_object_new.
      01e0: 49 72 4f 42 45 58 5f 53  65 72 76 65 72 52 65 67  IrOBEX_ServerReg
      01f0: 69 73 74 65 72 00 73 70  72 69 6e 74 66 40 40 47  ister.sprintf@@G
      0200: 4c 49 42 43 5f 32 2e 30  00 5f 5f 64 61 74 61 5f  LIBC_2.0.__data_
      0210: 73 74 61 72 74 00 6c 61  73 74 5f 72 73 70 00 62  start.last_rsp.b
      0220: 74 6f 62 65 78 5f 61 63  63 65 70 74 00 73 6f 63  tobex_accept.soc
      0230: 6b 65 74 40 40 47 4c 49  42 43 5f 32 2e 30 00 6f  ket@@GLIBC_2.0.o
      0240: 62 65 78 5f 70 72 6f 74  6f 63 6f 6c 5f 74 79 70  bex_protocol_typ
      0250: 65 00 73 65 72 76 65 72  5f 72 65 71 75 65 73 74  e.server_request
      0260: 00 6f 62 65 78 5f 72 65  73 70 6f 6e 73 65 5f 74  .obex_response_t
      0270: 6f 5f 73 74 72 69 6e 67  00 67 5f 6e 65 74 62 75  o_string.g_netbu
      0280: 66 5f 72 65 73 65 72 76  65 00 6f 62 65 78 5f 64  f_reserve.obex_d
      0290: 65 6c 65 74 65 5f 73 6f  63 6b 65                 elete_socke
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 174
    L2CAP(d): cid 0x0046 len 170 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 165 fcs 0xce 
      0000: 74 00 4f 42 45 58 5f 4f  62 6a 65 63 74 41 64 64  t.OBEX_ObjectAdd
      0010: 48 65 61 64 65 72 00 5f  5f 72 65 67 69 73 74 65  Header.__registe
      0020: 72 5f 66 72 61 6d 65 5f  69 6e 66 6f 00 4f 42 45  r_frame_info.OBE
      0030: 58 5f 4f 62 6a 65 63 74  53 65 74 48 64 72 4f 66  X_ObjectSetHdrOf
      0040: 66 73 65 74 00 67 5f 6e  65 74 62 75 66 5f 72 65  fset.g_netbuf_re
      0050: 63 79 63 6c 65 00 72 65  61 64 40 40 47 4c 49 42  cycle.read@@GLIB
      0060: 43 5f 32 2e 30 00 6f 62  65 78 5f 64 75 6d 70 00  C_2.0.obex_dump.
      0070: 5f 5f 67 6d 6f 6e 5f 73  74 61 72 74 5f 5f 00 6f  __gmon_start__.o
      0080: 62 65 78 5f 6f 62 6a 65  63 74 5f 72 65 63 65 69  bex_object_recei
      0090: 76 65 00 73 74 72 63 70  79 40 40 47 4c 49 42 43  ve.strcpy@@GLIBC
      00a0: 5f 32 2e 30 00                                    _2.0.
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: a0 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 11
    L2CAP(d): cid 0x0046 len 7 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 3 fcs 0xce 
      0000: 81 00 03                                          ...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 1
      0000: a0 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0046 len 4 [psm 3]
      RFCOMM(s): DISC: cr 1 dlci 18 pf 1 ilen 0 fcs 0xd3 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): DISC: cr 0 dlci 18 pf 1 ilen 0 fcs 0xb2 
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0046 len 4 [psm 3]
      RFCOMM(s): UA: cr 0 dlci 18 pf 1 ilen 0 fcs 0x98 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0046 len 4 [psm 3]
      RFCOMM(s): DISC: cr 1 dlci 0 pf 1 ilen 0 fcs 0xfd 
< ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(s): Disconn req: dcid 0x0046 scid 0x0040
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 02 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
  0000: 01 28 00 01 00                                    .(...
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): DM: cr 1 dlci 18 pf 1 ilen 0 fcs 0x18 
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): UA: cr 1 dlci 0 pf 1 ilen 0 fcs 0xd7 
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(s): Disconn rsp: dcid 0x0046 scid 0x0040
< HCI Command: Disconnect (0x01|0x0006) plen 3
  0000: 28 00 13                                          (..
> HCI Event: Command Status (0x0f) plen 4
  0000: 00 01 06 04                                       ....
> HCI Event: Disconn Complete (0x05) plen 4
  0000: 00 28 00 16                                       .(..

[-- Attachment #3: Type: text/plain, Size: 373 bytes --]

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

[-- Attachment #4: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21  9:41                         ` Mayank BATRA
@ 2006-08-21 11:51                           ` Marcel Holtmann
  2006-08-21 11:28                             ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-21 11:51 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > Here you go. Though, it is not the latest version of files 
> > that I am working
> > on.
> > It's a quick and dirty approach right now. Sending Host 
> > Number of Completed
> > Packets as soon as we receive ACL Data Packet on any 
> > connection handle.
> > Once this works, I'll try to send Host Number of completed 
> > packets after
> > reception of 8 packets.
> 
> I am still facing the same issue that since there is no event generated for
> Host Number of Completed packets command and the BlueZ stack is expecting an
> event for this command, the command finally times out. dmesg shows
> "hci_cmd_task: hci0 command tx timeout". The ACL data transfer stops after
> this. Also, when I disconnect, I see that all the remaining Host Number of
> completed packets commands that were queued earlier on, are sent finally.

you need to use the raw queue for sending this command. You can't use
the normal sent queue. We do the same for vendor specific commands.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 13:34                               ` Marcel Holtmann
@ 2006-08-21 11:56                                 ` Mayank BATRA
  2006-08-21 14:50                                   ` Marcel Holtmann
  2006-08-21 21:10                                   ` Ulisses Furquim
  0 siblings, 2 replies; 41+ messages in thread
From: Mayank BATRA @ 2006-08-21 11:56 UTC (permalink / raw)
  To: 'BlueZ development'

[-- Attachment #1: Type: text/plain, Size: 505 bytes --]

Hi Marcel,

> please use "hcidump -X -V" 

Here is the log with hcidump -X -V

> and if the HCI shows a wrong behavior with
> any of the new commands, please fix it.

There is no wrong behaviour as such. Just that Host Number of completed
packets is being sent as soon as we get ACL Data on any connection handle.

Do you think that the attached patch is decent enough for sending Host
Number of completed packets to the raw queue? (or is there a better way than
this?)

Regards,
Mayank

[-- Attachment #2: controller_to_host --]
[-- Type: application/octet-stream, Size: 68327 bytes --]

HCI sniffer - Bluetooth packet analyzer ver 1.31
device: hci0 snap_len: 1028 filter: 0xffffffff
< HCI Command: Read Local Supported Features (0x04|0x0003) plen 0
> HCI Event: Command Status (0x0f) plen 4
    Unknown (0x00|0x0000) status 0x00 ncmd 1
< HCI Command: Read Buffer Size (0x04|0x0005) plen 0
> HCI Event: Command Complete (0x0e) plen 12
    Read Local Supported Features (0x04|0x0003) ncmd 1
    status 0x00
    Features: 0xff 0xff 0x0d 0x00 0x00 0x00 0x00 0x00
< HCI Command: Host Buffer Size (0x03|0x0033) plen 7
  0000: 00 04 ff 08 00 08 00                              .......
> HCI Event: Command Complete (0x0e) plen 11
    Read Buffer Size (0x04|0x0005) ncmd 1
    status 0x00
    ACL MTU 192:8 SCO MTU 64:8
< HCI Command: Read BD ADDR (0x04|0x0009) plen 0
> HCI Event: Command Complete (0x0e) plen 4
    Host Buffer Size (0x03|0x0033) ncmd 1
    0000: 00                                                .
< HCI Command: Set Event Filter (0x03|0x0005) plen 1
    type 0 condition 0
    Clear all filters
> HCI Event: Command Complete (0x0e) plen 10
    Read BD ADDR (0x04|0x0009) ncmd 1
    status 0x00 bdaddr 00:60:63:35:6D:5C
< HCI Command: Write Page Timeout (0x03|0x0018) plen 2
    timeout 32768
> HCI Event: Command Complete (0x0e) plen 4
    Set Event Filter (0x03|0x0005) ncmd 1
    status 0x00
< HCI Command: Write Connection Accept Timeout (0x03|0x0016) plen 2
    timeout 32000
> HCI Event: Command Complete (0x0e) plen 4
    Write Page Timeout (0x03|0x0018) ncmd 1
    status 0x00
< HCI Command: Set Host Controller To Host Flow Control (0x03|0x0031) plen 1
  0000: 01                                                .
> HCI Event: Command Complete (0x0e) plen 4
    Write Connection Accept Timeout (0x03|0x0016) ncmd 1
    status 0x00
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1
    enable 3
> HCI Event: Command Complete (0x0e) plen 4
    Set Host Controller To Host Flow Control (0x03|0x0031) ncmd 1
    0000: 00                                                .
> HCI Event: Command Complete (0x0e) plen 4
    Write Scan Enable (0x03|0x001a) ncmd 1
    status 0x00
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1
    enable 3
> HCI Event: Command Complete (0x0e) plen 4
    Write Scan Enable (0x03|0x001a) ncmd 1
    status 0x00
< HCI Command: Read Stored Link Key (0x03|0x000d) plen 7
    bdaddr 00:00:00:00:00:00 all 1
> HCI Event: Command Complete (0x0e) plen 8
    Read Stored Link Key (0x03|0x000d) ncmd 1
    status 0x00 max 16 num 0
< HCI Command: Read Scan Enable (0x03|0x0019) plen 0
> HCI Event: Command Complete (0x0e) plen 5
    Read Scan Enable (0x03|0x0019) ncmd 1
    status 0x00 enable 3
< HCI Command: Write Authentication Enable (0x03|0x0020) plen 1
    enable 0
> HCI Event: Command Complete (0x0e) plen 4
    Write Authentication Enable (0x03|0x0020) ncmd 1
    status 0x00
< HCI Command: Read Scan Enable (0x03|0x0019) plen 0
> HCI Event: Command Complete (0x0e) plen 5
    Read Scan Enable (0x03|0x0019) ncmd 1
    status 0x00 enable 3
< HCI Command: Write Authentication Enable (0x03|0x0020) plen 1
    enable 0
> HCI Event: Command Complete (0x0e) plen 4
    Write Authentication Enable (0x03|0x0020) ncmd 1
    status 0x00
< HCI Command: Write Encryption Mode (0x03|0x0022) plen 1
    mode 0
> HCI Event: Command Complete (0x0e) plen 4
    Write Encryption Mode (0x03|0x0022) ncmd 1
    status 0x00
< HCI Command: Write Local Name (0x03|0x0013) plen 248
    name 'BlueZ (0)'
> HCI Event: Command Complete (0x0e) plen 4
    Write Local Name (0x03|0x0013) ncmd 1
    status 0x00
< HCI Command: Write Class of Device (0x03|0x0024) plen 3
    class 0x3e0100
> HCI Event: Command Complete (0x0e) plen 4
    Write Class of Device (0x03|0x0024) ncmd 1
    status 0x00
< HCI Command: Read Local Name (0x03|0x0014) plen 0
> HCI Event: Command Complete (0x0e) plen 252
    Read Local Name (0x03|0x0014) ncmd 1
    status 0x00 name 'BlueZ (0)'
< HCI Command: Create Connection (0x01|0x0005) plen 13
    bdaddr 00:13:E0:0D:03:99 ptype 0xcc18 rswitch 0x01 clkoffset 0x0000
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 
> HCI Event: Command Status (0x0f) plen 4
    Create Connection (0x01|0x0005) status 0x00 ncmd 1
> HCI Event: Connect Complete (0x03) plen 11
    status 0x00 handle 40 bdaddr 00:13:E0:0D:03:99 type ACL encrypt 0x00
< ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 3 scid 0x0040
< HCI Command: Write Link Policy Settings (0x02|0x000d) plen 4
    handle 40 policy 0x0f
    Link policy: RSWITCH HOLD SNIFF PARK 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Command Complete (0x0e) plen 6
    Write Link Policy Settings (0x02|0x000d) ncmd 1
    status 0x00 handle 40
> HCI Event: Max Slots Change (0x1b) plen 3
    handle 40 slots 5
> HCI Event: QoS Setup Complete (0x0d) plen 21
    status 0x00 handle 40 flags 0
    Service type: 1
    Token rate: 0
    Peak bandwith: 0
    Latency: 0
    Delay variation: 0
> ACL data: handle 40 flags 0x02 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0047 scid 0x0040 result 0 status 0
      Connection successful
< ACL data: handle 40 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0047 flags 0x00 clen 4
      MTU 1024 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 0
< ACL data: handle 40 flags 0x02 dlen 14
    L2CAP(s): Config rsp: scid 0x0047 flags 0x00 result 0 clen 0
      Success
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 16
> ACL data: handle 40 flags 0x01 dlen 2
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4
      Success
      MTU 672 
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0047 len 4 [psm 3]
      RFCOMM(s): SABM: cr 1 dlci 0 pf 1 ilen 0 fcs 0x1c 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): UA: cr 1 dlci 0 pf 1 ilen 0 fcs 0xd7 
< ACL data: handle 40 flags 0x02 dlen 18
    L2CAP(d): cid 0x0047 len 14 [psm 3]
      RFCOMM(s): PN CMD: cr 1 dlci 0 pf 0 ilen 10 fcs 0x70 mcc_len 8
      dlci 18 frame_type 0 credit_flow 15 pri 0 ack_timer 0
      frame_size 667 max_retrans 0 credits 7
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 16
> ACL data: handle 40 flags 0x01 dlen 2
    L2CAP(d): cid 0x0040 len 14 [psm 3]
      RFCOMM(s): PN RSP: cr 0 dlci 0 pf 0 ilen 10 fcs 0xaa mcc_len 8
      dlci 18 frame_type 0 credit_flow 14 pri 0 ack_timer 0
      frame_size 667 max_retrans 0 credits 3
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0047 len 4 [psm 3]
      RFCOMM(s): SABM: cr 1 dlci 18 pf 1 ilen 0 fcs 0x32 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): UA: cr 1 dlci 18 pf 1 ilen 0 fcs 0xf9 
< ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0047 len 8 [psm 3]
      RFCOMM(s): MSC CMD: cr 1 dlci 0 pf 0 ilen 4 fcs 0x70 mcc_len 2
      dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 1 b2 1 b3 0 len 0
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 9
    L2CAP(d): cid 0x0047 len 5 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 1 ilen 0 fcs 0xd2 credits 33
< ACL data: handle 40 flags 0x02 dlen 15
    L2CAP(d): cid 0x0047 len 11 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 7 fcs 0xce 
      0000: 80 00 07 10 00 04 00                              .......
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 2
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(s): MSC CMD: cr 0 dlci 0 pf 0 ilen 4 fcs 0xaa mcc_len 2
      dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 1 b2 1 b3 0 len 0
< ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0047 len 8 [psm 3]
      RFCOMM(s): MSC RSP: cr 1 dlci 0 pf 0 ilen 4 fcs 0x70 mcc_len 2
      dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 1 b2 1 b3 0 len 0
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(s): MSC RSP: cr 0 dlci 0 pf 0 ilen 4 fcs 0xaa mcc_len 2
      dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 1 b2 1 b3 0 len 0
> ACL data: handle 40 flags 0x02 dlen 9
    L2CAP(d): cid 0x0040 len 5 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 0 fcs 0x8 credits 4
> ACL data: handle 40 flags 0x02 dlen 16
    L2CAP(d): cid 0x0040 len 12 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 7 fcs 0x8 credits 1
      0000: a0 00 07 10 00 0f a0                              .......
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 01 00 19 00 6f  00 62 00 65 00 78 00 73  .......o.b.e.x.s
      0010: 00 65 00 72 00 76 00 65  00 72 00 00 c3 00 01 1d  .e.r.v.e.r......
      0020: 72 48 03 df 7f 45 4c 46  01 01 01 61 00 00 00 00  rH...ELF...a....
      0030: 00 00 00 00 02 00 28 00  01 00 00 00 18 89 00 00  ......(.........
      0040: 34 00 00 00 b4 f7 00 00  02 00 00 00 34 00 20 00  4...........4. .
      0050: 06 00 28 00 1d 00 1a 00  06 00 00 00 34 00 00 00  ..(.........4...
      0060: 34 80 00 00 34 80 00 00  c0 00 00 00 c0 00 00 00  4...4...........
      0070: 05 00 00 00 04 00 00 00  03 00 00 00 f4 00 00 00  ................
      0080: f4 80 00 00 f4 80 00 00  13 00 00 00 13 00 00 00  ................
      0090: 04 00 00 00 01 00 00 00  01 00 00 00 00 00 00 00  ................
      00a0: 00 80 00 00 00 80 00 00  8c 52 00 00 8c 52 00 00  .........R...R..
      00b0: 05 00 00 00 00 80 00 00  01 00 00 00 8c 52 00 00  .............R..
      00c0: 8c 52 01 00 8c 52 01 00  5c 01 00 00 68 01 00 00  .R...R..\...h...
      00d0: 06 00 00 00 00 80 00 00  02 00 00 00 48 53 00 00  ............HS..
      00e0: 48 53 01 00 48 53 01 00  a0 00 00 00 a0 00 00 00  HS..HS..........
      00f0: 06 00 00 00 04 00 00 00  04 00 00 00 10 01 00 00  ................
      0100: 10 81 00 00 10 81 00 00  20 00 00 00 20 00 00 00  ........ ... ...
      0110: 04 00 00 00 10 00 00 00  2f 6c 69 62 2f 6c 64 2d  ......../lib/ld-
      0120: 6c 69 6e 75 78 2e 73 6f  2e 32 00 00 00 00 00 00  linux.so.2......
      0130: 00 00 00 00 04 00 00 00  10 00 00 00 01 00 00 00  ................
      0140: 47 4e 55 00 00 00 00 00  02 00 00 00 00 00 00 00  GNU.............
      0150: 00 00 00 00 11 00 00 00  24 00 00 00 00 00 00 00  ........$.......
      0160: 00 00 00 00 20 00 00 00  18 00 00 00 12 00 00 00  .... ...........
      0170: 00 00 00 00 1d 00 00 00  21 00 00 00 1c 00 00 00  ........!.......
      0180: 05 00 00 00 1f 00 00 00  00 00 00 00 23 00 00 00  ............#...
      0190: 1e 00 00 00 16 00 00 00  22 00 00 00 00 00 00 00  ........".......
      01a0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
      01b0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
      01c0: 02 00 00 00 07 00 00 00  00 00 00 00 03 00 00 00  ................
      01d0: 09 00 00 00 0b 00 00 00  01 00 00 00 0d 00 00 00  ................
      01e0: 00 00 00 00 08 00 00 00  10 00 00 00 0a 00 00 00  ................
      01f0: 00 00 00 00 0f 00 00 00  06 00 00 00 0c 00 00 00  ................
      0200: 04 00 00 00 15 00 00 00  00 00 00 00 11 00 00 00  ................
      0210: 17 00 00 00 14 00 00 00  1b 00 00 00 19 00 00 00  ................
      0220: 0e 00 00 00 13 00 00 00  00 00 00 00 1a 00 00 00  ................
      0230: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
      0240: b1 00 00 00 18 87 00 00  b4 00 00 00 12 00 00 00  ................
      0250: 0f 01 00 00 28 87 00 00  e8 00 00 00 12 00 00 00  ....(...........
      0260: 70 00 00 00 38 87 00 00  10 00 00 00 12 00 00 00  p...8...........
      0270: 16 01 00 00 48 87 00 00  10 00 00 00 12 00 00 00  ....H...........
      0280: 3f 00 00 00 58 87 00 00  dc 00 00 00 12 00 00 00  ?...X...........
      0290: 76 00 00 00 68 87 00 00  20 00 00                 v...h... ..
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0047 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 00 12 00 00 00 8e 00 00  00 78 87 00 00 ec 00 00  .........x......
      0010: 00 12 00 00 00 54 00 00  00 88 87 00 00 1c 00 00  .....T..........
      0020: 00 12 00 00 00 61 00 00  00 98 87 00 00 24 00 00  .....a.......$..
      0030: 00 12 00 00 00 aa 00 00  00 a8 87 00 00 24 00 00  .............$..
      0040: 00 12 00 00 00 46 00 00  00 b8 87 00 00 88 02 00  .....F..........
      0050: 00 12 00 00 00 30 00 00  00 c8 87 00 00 3c 01 00  .....0.......<..
      0060: 00 12 00 00 00 cf 00 00  00 d8 87 00 00 24 00 00  .............$..
      0070: 00 12 00 00 00 c8 00 00  00 e8 53 01 00 04 00 00  ..........S.....
      0080: 00 11 00 16 00 5b 00 00  00 e8 87 00 00 ec 01 00  .....[..........
      0090: 00 12 00 00 00 da 00 00  00 f8 87 00 00 80 03 00  ................
      00a0: 00 12 00 00 00 83 00 00  00 08 88 00 00 24 00 00  .............$..
      00b0: 00 12 00 00 00 03 01 00  00 18 88 00 00 60 00 00  .............`..
      00c0: 00 12 00 00 00 f1 00 00  00 28 88 00 00 08 01 00  .........(......
      00d0: 00 12 00 00 00 a2 00 00  00 38 88 00 00 ac 02 00  .........8......
      00e0: 00 12 00 00 00 21 00 00  00 48 88 00 00 40 00 00  .....!...H...@..
      00f0: 00 12 00 00 00 7e 00 00  00 58 88 00 00 24 00 00  .....~...X...$..
      0100: 00 12 00 00 00 38 00 00  00 68 88 00 00 a4 00 00  .....8...h......
      0110: 00 12 00 00 00 68 00 00  00 78 88 00 00 4c 00 00  .....h...x...L..
      0120: 00 12 00 00 00 0a 01 00  00 88 88 00 00 10 00 00  ................
      0130: 00 12 00 00 00 1c 01 00  00 98 88 00 00 0c 01 00  ................
      0140: 00 12 00 00 00 b9 00 00  00 a8 88 00 00 9c 00 00  ................
      0150: 00 12 00 00 00 28 00 00  00 b8 88 00 00 24 00 00  .....(.......$..
      0160: 00 12 00 00 00                                    .....
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 9a 00  00 00 c8 88 00 00 d8 00  ...H............
      0010: 00 00 12 00 00 00 e2 00  00 00 14 cf 00 00 04 00  ................
      0020: 00 00 11 00 0f 00 c0 00  00 00 d8 88 00 00 20 00  .............. .
      0030: 00 00 12 00 00 00 4d 00  00 00 e8 88 00 00 24 00  ......M.......$.
      0040: 00 00 12 00 00 00 95 00  00 00 f8 88 00 00 10 00  ................
      0050: 00 00 12 00 00 00 01 00  00 00 00 00 00 00 00 00  ................
      0060: 00 00 20 00 00 00 1a 00  00 00 08 89 00 00 28 00  .. ...........(.
      0070: 00 00 12 00 00 00 00 5f  5f 67 6d 6f 6e 5f 73 74  .......__gmon_st
      0080: 61 72 74 5f 5f 00 6c 69  62 63 2e 73 6f 2e 36 00  art__.libc.so.6.
      0090: 73 74 72 63 70 79 00 70  72 69 6e 74 66 00 63 6f  strcpy.printf.co
      00a0: 6e 6e 65 63 74 00 6d 65  6d 6d 6f 76 65 00 6d 65  nnect.memmove.me
      00b0: 6d 63 70 79 00 70 65 72  72 6f 72 00 6d 61 6c 6c  mcpy.perror.mall
      00c0: 6f 63 00 73 6f 63 6b 65  74 00 73 65 6c 65 63 74  oc.socket.select
      00d0: 00 61 62 6f 72 74 00 61  63 63 65 70 74 00 73 74  .abort.accept.st
      00e0: 72 72 63 68 72 00 77 72  69 74 65 00 66 70 72 69  rrchr.write.fpri
      00f0: 6e 74 66 00 62 69 6e 64  00 73 65 74 73 6f 63 6b  ntf.bind.setsock
      0100: 6f 70 74 00 73 69 67 6e  61 6c 00 72 65 61 64 00  opt.signal.read.
      0110: 73 74 72 6e 63 70 79 00  72 65 61 6c 6c 6f 63 00  strncpy.realloc.
      0120: 6c 69 73 74 65 6e 00 73  74 72 6e 63 61 74 00 6d  listen.strncat.m
      0130: 65 6d 73 65 74 00 73 70  72 69 6e 74 66 00 73 74  emset.sprintf.st
      0140: 64 65 72 72 00 67 65 74  73 6f 63 6b 6f 70 74 00  derr.getsockopt.
      0150: 5f 5f 78 73 74 61 74 00  5f 49 4f 5f 73 74 64 69  __xstat._IO_stdi
      0160: 6e 5f 75 73 65 64 00 5f  5f 6c 69 62 63 5f 73 74  n_used.__libc_st
      0170: 61 72 74 5f 6d 61 69 6e  00 73 74 72 6c 65 6e 00  art_main.strlen.
      0180: 6f 70 65 6e 00 73 74 72  63 68 72 00 63 6c 6f 73  open.strchr.clos
      0190: 65 00 66 72 65 65 00 47  4c 49 42 43 5f 32 2e 30  e.free.GLIBC_2.0
      01a0: 00 00 00 00 02 00 02 00  02 00 02 00 02 00 02 00  ................
      01b0: 02 00 02 00 02 00 02 00  02 00 02 00 02 00 02 00  ................
      01c0: 02 00 02 00 02 00 02 00  02 00 02 00 02 00 02 00  ................
      01d0: 02 00 02 00 02 00 02 00  02 00 02 00 02 00 01 00  ................
      01e0: 02 00 02 00 02 00 00 00  02 00 01 00 01 00 10 00  ................
      01f0: 00 00 10 00 00 00 00 00  00 00 10 69 69 0d 00 00  ...........ii...
      0200: 02 00 21 01 00 00 00 00  00 00 44 53 01 00 15 22  ..!.......DS..."
      0210: 00 00 e8 53 01 00 14 0e  00 00 c4 52 01 00 16 01  ...S.......R....
      0220: 00 00 c8 52 01 00 16 02  00 00 cc 52 01 00 16 03  ...R.......R....
      0230: 00 00 d0 52 01 00 16 04  00 00 d4 52 01 00 16 05  ...R.......R....
      0240: 00 00 d8 52 01 00 16 06  00 00 dc 52 01 00 16 07  ...R.......R....
      0250: 00 00 e0 52 01 00 16 08  00 00 e4 52 01 00 16 09  ...R.......R....
      0260: 00 00 e8 52 01 00 16 0a  00 00 ec 52 01 00 16 0b  ...R.......R....
      0270: 00 00 f0 52 01 00 16 0c  00 00 f4 52 01 00 16 0d  ...R.......R....
      0280: 00 00 f8 52 01 00 16 0f  00 00 fc 52 01 00 16 10  ...R.......R....
      0290: 00 00 00 53 01 00 16 11  00 00 04                 ...S.......
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0047 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 53 01 00 16 12 00 00 08  53 01 00 16 13 00 00 0c  S.......S.......
      0010: 53 01 00 16 14 00 00 10  53 01 00 16 15 00 00 14  S.......S.......
      0020: 53 01 00 16 16 00 00 18  53 01 00 16 17 00 00 1c  S.......S.......
      0030: 53 01 00 16 18 00 00 20  53 01 00 16 19 00 00 24  S...... S......$
      0040: 53 01 00 16 1a 00 00 28  53 01 00 16 1b 00 00 2c  S......(S......,
      0050: 53 01 00 16 1c 00 00 30  53 01 00 16 1d 00 00 34  S......0S......4
      0060: 53 01 00 16 1f 00 00 38  53 01 00 16 20 00 00 3c  S......8S... ..<
      0070: 53 01 00 16 21 00 00 40  53 01 00 16 23 00 00 0d  S...!..@S...#...
      0080: c0 a0 e1 00 d8 2d e9 04  b0 4c e2 92 00 00 eb ec  .....-...L......
      0090: 11 00 eb 00 a8 1b e9 04  e0 2d e5 10 e0 9f e5 0e  .........-......
      00a0: e0 8f e0 08 f0 be e5 04  c0 9f e5 0c c0 8f e0 00  ................
      00b0: f0 9c e5 a0 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ................
      00c0: f0 9c e5 94 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ................
      00d0: f0 9c e5 88 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ................
      00e0: f0 9c e5 7c cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...|............
      00f0: f0 9c e5 70 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...p............
      0100: f0 9c e5 64 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...d............
      0110: f0 9c e5 58 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...X............
      0120: f0 9c e5 4c cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...L............
      0130: f0 9c e5 40 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...@............
      0140: f0 9c e5 34 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...4............
      0150: f0 9c e5 28 cb 00 00 04  c0 9f e5 0c c0 8f e0 00  ...(............
      0160: f0 9c e5 1c cb                                    .....
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 00 00  04 c0 9f e5 0c c0 8f e0  ...H............
      0010: 00 f0 9c e5 10 cb 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0020: 00 f0 9c e5 04 cb 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0030: 00 f0 9c e5 f8 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0040: 00 f0 9c e5 ec ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0050: 00 f0 9c e5 e0 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0060: 00 f0 9c e5 d4 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0070: 00 f0 9c e5 c8 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0080: 00 f0 9c e5 bc ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      0090: 00 f0 9c e5 b0 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00a0: 00 f0 9c e5 a4 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00b0: 00 f0 9c e5 98 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00c0: 00 f0 9c e5 8c ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00d0: 00 f0 9c e5 80 ca 00 00  04 c0 9f e5 0c c0 8f e0  ................
      00e0: 00 f0 9c e5 74 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....t...........
      00f0: 00 f0 9c e5 68 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....h...........
      0100: 00 f0 9c e5 5c ca 00 00  04 c0 9f e5 0c c0 8f e0  ....\...........
      0110: 00 f0 9c e5 50 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....P...........
      0120: 00 f0 9c e5 44 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....D...........
      0130: 00 f0 9c e5 38 ca 00 00  04 c0 9f e5 0c c0 8f e0  ....8...........
      0140: 00 f0 9c e5 2c ca 00 00  00 b0 a0 e3 02 00 bd e8  ....,...........
      0150: 0d 20 a0 e1 01 00 2d e9  10 00 9f e5 01 00 2d e9  . ....-.......-.
      0160: 0c 00 9f e5 0c 30 9f e5  ba ff ff eb a9 ff ff eb  .....0..........
      0170: 00 cf 00 00 04 8a 00 00  f0 86 00 00 0d c0 a0 e1  ................
      0180: 00 dc 2d e9 20 a0 9f e5  20 30 9f e5 0a a0 8f e0  ..-. ... 0......
      0190: 03 30 9a e7 04 b0 4c e2  00 00 53 e3 00 ac 1b 09  .0....L...S.....
      01a0: 0f e0 a0 e1 03 f0 a0 e1  00 ac 1b e9 54 c9 00 00  ............T...
      01b0: 8c 00 00 00 0d c0 a0 e1  30 d8 2d e9 58 20 9f e5  ........0.-.X ..
      01c0: 04 b0 4c e2 00 30 92 e5  02 50 a0 e1 00 00 53 e3  ..L..0...P....S.
      01d0: 30 a8 1b 19 44 10 9f e5  00 30 91 e5 00 20 93 e5  0...D....0... ..
      01e0: 00 00 52 e3 09 00 00 0a  01 40 a0 e1 00 30 94 e5  ..R......@...0..
      01f0: 04 30 83 e2 00 30 84 e5  0f e0 a0 e1 04 f0 13 e5  .0...0..........
      0200: 00 20 94 e5 00 30 92 e5  00 00 53 e3 f6 ff ff 1a  . ...0....S.....
      0210: 01 30 a0 e3 00 30 85 e5  30 a8 1b e9 94 52 01 00  .0...0..0....R..
      0220: 90 52 01 00 0d c0 a0 e1  00 d8 2d e9 04 b0 4c e2  .R........-...L.
      0230: 00 a8 1b e9 0d c0 a0 e1  00 d8 2d e9 04 b0 4c e2  ..........-...L.
      0240: 0c d0 4d e2 10 00 0b e5  14 10 0b e5 00 00 00 ea  ..M.............
      0250: 28 00 00 ea 04 00 a0 e3  88 10 9f e5 00 20 a0 e3  (............ ..
      0260: 0e 02 00 eb 00 30 a0 e1  7c 20 9f e5 00 30 82 e5  .....0..| ...0..
      0270: 10 30 1b e5 01 00 53 e3  13 00 00 1a 68 30 9f e5  .0....S.....h0..
      0280: 00 00 93 e5 00 10 a0 e3  03 20 a0 e3 d3 04 00 eb  ......... ......
      0290: 58 00 9f e5 77 ff ff eb  4c 30 9f                 X...w...L0.
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0047 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: e5 00 00 93 e5 35 0f 00  eb 48 30 9f e5 00 20 93  .....5...H0... .
      0010: e5 00 00 52 e3 00 00 00  0a 04 00 00 ea 2c 30 9f  ...R.........,0.
      0020: e5 00 00 93 e5 01 10 a0  e3 27 03 00 eb f5 ff ff  .........'......
      0030: ea 20 30 9f e5 00 20 a0  e3 00 20 83 e5 0c 30 9f  . 0... ... ...0.
      0040: e5 00 00 93 e5 49 02 00  eb d8 ff ff ea 1c 8d 00  .....I..........
      0050: 00 9c 52 01 00 18 cf 00  00 98 52 01 00 00 a8 1b  ..R.......R.....
      0060: e9 0d c0 a0 e1 f0 df 2d  e9 04 b0 4c e2 00 a0 a0  .......-...L....
      0070: e3 18 d0 4d e2 3c a0 0b  e5 38 00 0b e5 0a 80 a0  ...M.<...8......
      0080: e1 0a 40 a0 e1 d8 90 9f  e5 29 70 4b e2 30 60 4b  ..@......)pK.0`K
      0090: e2 34 50 4b e2 24 00 00  ea 29 30 5b e5 48 00 53  .4PK.$...)0[.H.S
      00a0: e3 03 10 a0 e1 08 00 00  0a 02 00 00 ca 01 00 53  ...............S
      00b0: e3 09 00 00 0a 1a 00 00  ea c3 00 53 e3 12 00 00  ...........S....
      00c0: 0a cf 00 53 e3 12 00 00  0a 15 00 00 ea 30 30 1b  ...S.........00.
      00d0: e5 34 a0 1b e5 3c 30 0b  e5 13 00 00 ea 34 00 1b  .4...<0......4..
      00e0: e5 a0 0f 80 e0 c0 00 a0  e1 17 ff ff eb 00 40 50  ..............@P
      00f0: e2 0d 00 00 0a 30 10 1b  e5 04 00 a0 e1 34 20 1b  .....0.......4 .
      0100: e5 04 80 a0 e1 e2 03 00  eb 07 00 00 ea 54 00 9f  .............T..
      0110: e5 00 00 00 ea 50 00 9f  e5 30 10 1b e5 2e ff ff  .....P...0......
      0120: eb 01 00 00 ea 44 00 9f  e5 2b ff ff eb 00 50 8d  .....D...+....P.
      0130: e5 38 10 1b e5 07 20 a0  e1 00 00 99 e5 06 30 a0  .8.... .......0.
      0140: e1 6f 03 00 eb 00 00 50  e3 d2 ff ff 1a 3c 30 1b  .o.....P.....<0.
      0150: e5 00 00 53 e3 07 00 00  1a 14 00 9f e5 1e ff ff  ...S............
      0160: eb 13 00 00 ea                                    .....
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 2
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 9c 52  01 00 34 cf 00 00 48 cf  ...H...R..4...H.
      0010: 00 00 5c cf 00 00 7c cf  00 00 00 00 58 e3 03 00  ..\...|.....X...
      0020: 00 1a 24 00 9f e5 08 10  a0 e1 20 80 9f e5 12 ff  ..$....... .....
      0030: ff eb 08 00 a0 e1 3c 10  1b e5 0a 20 a0 e1 61 01  ......<.... ..a.
      0040: 00 eb 04 00 a0 e1 20 ff  ff eb 01 00 00 ea 98 cf  ...... .........
      0050: 00 00 c8 cf 00 00 f0 af  1b e9 0d c0 a0 e1 10 d8  ................
      0060: 2d e9 04 b0 4c e2 00 40  a0 e1 02 10 a0 e1 05 00  -...L..@........
      0070: 51 e3 01 f1 9f 97 19 00  00 ea 94 8c 00 00 a0 8c  Q...............
      0080: 00 00 78 8c 00 00 ac 8c  00 00 ac 8c 00 00 5c 8c  ..x...........\.
      0090: 00 00 64 00 9f e5 f8 fe  ff eb 04 00 a0 e1 10 10  ..d.............
      00a0: a0 e3 20 20 a0 e3 66 03  00 eb 10 a8 1b e9 04 00  ..  ..f.........
      00b0: a0 e1 10 10 a0 e3 20 20  a0 e3 61 03 00 eb 04 00  ......  ..a.....
      00c0: a0 e1 8e ff ff eb 10 a8  1b e9 04 00 a0 e1 20 10  .............. .
      00d0: a0 e3 f2 ff ff ea 04 00  a0 e1 20 10 a0 e3 ef ff  .......... .....
      00e0: ff ea 18 00 9f e5 e4 fe  ff eb 04 00 a0 e1 51 10  ..............Q.
      00f0: a0 e3 01 20 a0 e1 52 03  00 eb 10 a8 1b e9 e0 cf  ... ..R.........
      0100: 00 00 fc cf 00 00 0d c0  a0 e1 00 d8 2d e9 04 b0  ............-...
      0110: 4c e2 01 00 51 e3 04 30  9f 05 00 10 83 05 00 a8  L...Q..0........
      0120: 1b e9 98 52 01 00 0d c0  a0 e1 00 d8 2d e9 14 30  ...R........-..0
      0130: 9f e5 00 20 83 e5 04 b0  4c e2 0c 20 9f e5 01 30  ... ....L.. ...0
      0140: a0 e3 00 30 82 e5 00 a8  1b e9 a0 52 01 00 98 52  ...0.......R...R
      0150: 01 00 0d c0 a0 e1 70 d8  2d e9 04 b0 4c e2 01 40  ......p.-...L..@
      0160: a0 e1 02 60 a0 e1 03 10  a0 e1 04 50 9b e5 04 00  ...`.......P....
      0170: 51 e3 01 f1 9f 97 2c 00  00 ea 58 8d 00 00 98 8d  Q.....,...X.....
      0180: 00 00 d0 8d 00 00 64 8d  00 00 e0 8d 00 00 a4 00  ......d.........
      0190: 9f e5 b9 fe ff eb 70 a8  1b e9 9c 00 9f e5 b6 fe  ......p.........
      01a0: ff eb 00 00 56 e3 04 00  00 1a 04 00 a0 e1 08 20  ....V.......... 
      01b0: 9b e5 05 10 a0 e1 da ff  ff eb 70 a8 1b e9 04 00  ..........p.....
      01c0: a0 e1 05 10 a0 e1 ce ff  ff eb 70 a8 1b e9 02 00  ..........p.....
      01d0: 55 e3 06 00 00 ca 00 00  55 e3 04 00 00 ba 04 00  U.......U.......
      01e0: a0 e1 10 10 a0 e3 20 20  a0 e3 15 03 00 eb 70 a8  ......  ......p.
      01f0: 1b e9 04 00 a0 e1 51 10  a0 e3 01 20 a0 e1 10 03  ......Q.... ....
      0200: 00 eb 70 a8 1b e9 04 00  a0 e1 05 20 a0 e1 91 ff  ..p........ ....
      0210: ff eb 70 a8 1b e9 24 00  9f e5 97 fe ff eb 20 20  ..p...$.......  
      0220: 9f e5 01 30 a0 e3 00 30  82 e5 70 a8 1b e9 14 00  ...0...0..p.....
      0230: 9f e5 91 fe ff eb 70 a8  1b e9 24 d0 00 00 28 d0  ......p...$...(.
      0240: 00 00 2c d0 00 00 98 52  01 00 60 d0 00 00 0d c0  ..,....R..`.....
      0250: a0 e1 30 d8 2d e9 40 20  9f e5 00 30 92 e5 04 b0  ..0.-.@ ...0....
      0260: 4c e2 00 00 53 e3 09 00  00 1a 02 50 a0 e1 2c 40  L...S......P..,@
      0270: 9f e5 00 00 94 e5 0a 10  a0 e3 3b 02 00 eb 00 00  ..........;.....
      0280: 50 e3 30 a8 1b b9 00 30  95 e5 00 00 53 e3 f7 ff  P.0....0....S...
      0290: ff 0a 0c 30 9f e5 00 00  93 e5 30                 ...0......0
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0047 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: a8 1b e9 98 52 01 00 9c  52 01 00 a0 52 01 00 0d  ....R...R...R...
      0010: c0 a0 e1 00 d8 2d e9 04  b0 4c e2 6c 02 00 eb e3  .....-...L.l....
      0020: ff ff eb 08 20 9f e5 00  30 a0 e3 00 30 82 e5 00  .... ...0...0...
      0030: a8 1b e9 98 52 01 00 0d  c0 a0 e1 00 d8 2d e9 04  ....R........-..
      0040: b0 4c e2 00 10 a0 e1 03  00 a0 e3 64 20 4b e2 58  .L.........d K.X
      0050: d0 4d e2 4e fe ff eb 38  00 1b e5 00 a8 1b e9 0d  .M.N...8........
      0060: c0 a0 e1 f0 d8 2d e9 04  b0 4c e2 00 40 a0 e1 01  .....-...L..@...
      0070: 70 a0 e1 ef ff ff eb 00  20 a0 e1 00 20 87 e5 64  p....... ... ..d
      0080: 00 9f e5 04 10 a0 e1 55  fe ff eb 04 00 a0 e1 00  .......U........
      0090: 10 a0 e3 01 20 a0 e1 61  fe ff eb 00 60 a0 e1 01  .... ..a....`...
      00a0: 00 76 e3 00 00 a0 e3 f0  a8 1b 09 00 00 97 e5 27  .v.............'
      00b0: fe ff eb 00 50 50 e2 09  00 00 0a 06 00 a0 e1 00  ....PP..........
      00c0: 20 97 e5 05 10 a0 e1 71  fe ff eb 00 40 a0 e1 06   ......q....@...
      00d0: 00 a0 e1 02 fe ff eb 05  00 a0 e1 00 40 87 e5 f0  ............@...
      00e0: a8 1b e9 05 00 a0 e1 f0  a8 1b e9 70 d0 00 00 0d  ...........p....
      00f0: c0 a0 e1 f0 dd 2d e9 04  b0 4c e2 00 70 a0 e1 01  .....-...L..p...
      0100: 60 a0 e1 06 00 a0 e1 f0  10 4b e2 d4 d0 4d e2 d2  `........K...M..
      0110: ff ff eb 00 80 50 e2 08  00 a0 01 7e 00 00 0a 06  .....P.....~....
      0120: 00 a0 e1 2e 10 a0 e3 e5  fd ff eb 00 00 50 e3 d8  .............P..
      0130: a0 9f e5 4b 00 00 0a 01  30 f0 e5 76 20 43 e2 76  ...K....0..v C.v
      0140: 00 53 e3 07 00 00 1a 01  30 d0 e5 63 20 43 e2 63  .S......0..c C.c
      0150: 00 53 e3 03 00 00 1a 02  30 d0 e5 66 20 43 e2 66  .S......0..f C.f
      0160: 00 53 e3 03 20                                    .S.. 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd d0 05  00 00 52 e3 03 00 00 1a  ...H......R.....
      0010: 9c 00 9f e5 9c a0 9f e5  19 fe ff eb 39 00 00 ea  ............9...
      0020: 00 30 d0 e5 76 20 43 e2  76 00 53 e3 03 10 a0 e1  .0..v C.v.S.....
      0030: 07 00 00 1a 01 30 d0 e5  63 20 43 e2 63 00 53 e3  .....0..c C.c.S.
      0040: 03 00 00 1a 02 30 d0 e5  73 20 43 e2 73 00 53 e3  .....0..s C.s.S.
      0050: 03 20 d0 05 00 00 52 e3  03 00 00 1a 58 00 9f e5  . ....R.....X...
      0060: 58 a0 9f e5 06 fe ff eb  26 00 00 ea 74 20 41 e2  X.......&...t A.
      0070: 74 00 51 e3 07 00 00 1a  01 30 d0 e5 78 20 43 e2  t.Q......0..x C.
      0080: 78 00 53 e3 03 00 00 1a  02 30 d0 e5 74 20 43 e2  x.S......0..t C.
      0090: 74 00 53 e3 03 20 d0 05  00 00 52 e3 09 00 00 1a  t.S.. ....R.....
      00a0: 1c 00 9f e5 04 a0 9f e5  f5 fd ff eb 15 00 00 ea  ................
      00b0: 6f 6d 65 6d 88 d0 00 00  72 64 64 61 ac d0 00 00  omem....rdda....
      00c0: 65 74 61 64 cc d0 00 00  70 20 41 e2 70 00 51 e3  etad....p A.p.Q.
      00d0: 07 00 00 1a 01 30 d0 e5  72 20 43 e2 72 00 53 e3  .....0..r C.r.S.
      00e0: 03 00 00 1a 02 30 d0 e5  63 20 43 e2 63 00 53 e3  .....0..c C.c.S.
      00f0: 03 20 d0 05 00 00 52 e3  02 00 00 1a bc 00 9f e5  . ....R.........
      0100: bc a0 9f e5 de fd ff eb  07 00 a0 e1 02 10 a0 e3  ................
      0110: f4 01 00 eb 00 50 a0 e1  ec 40 4b e2 04 00 a0 e1  .....P...@K.....
      0120: 06 10 a0 e1 c8 20 a0 e3  b0 02 00 eb 00 00 8d e5  ..... ..........
      0130: 00 60 a0 e3 04 60 8d e5  07 00 a0 e1 05 10 a0 e1  .`...`..........
      0140: 01 20 a0 e3 04 30 a0 e1  08 02 00 eb 04 40 a0 e3  . ...0.......@..
      0150: 50 00 8d e8 07 00 a0 e1  05 10 a0 e1 f0 30 1b e5  P............0..
      0160: c3 20 a0 e3 01 02 00 eb  58 30 9f e5 00 20 93 e5  . ......X0... ..
      0170: 01 00 52 e3 05 00 00 0a  50 00 8d e8 07 00 a0 e1  ..R.....P.......
      0180: 05 10 a0 e1 cf 20 a0 e3  0a 30 a0 e1 f7 01 00 eb  ..... ...0......
      0190: 04 60 8d e5 f0 30 1b e5  00 30 8d e5 07 00 a0 e1  .`...0...0......
      01a0: 05 10 a0 e1 48 20 a0 e3  08 30 a0 e1 ef 01 00 eb  ....H ...0......
      01b0: 08 00 a0 e1 c6 fd ff eb  05 00 a0 e1 02 00 00 ea  ................
      01c0: ec d0 00 00 68 63 6e 6c  a4 52 01 00 f0 ad 1b e9  ....hcnl.R......
      01d0: 0d c0 a0 e1 f0 d9 2d e9  04 b0 4c e2 00 50 a0 e1  ......-...L..P..
      01e0: 12 4e 4b e2 04 00 a0 e1  01 80 a0 e1 00 10 a0 e3  .NK.............
      01f0: 02 70 a0 e1 ff 20 a0 e3  01 dc 4d e2 b8 fd ff eb  .p... ....M.....
      0200: 88 00 9f e5 05 10 a0 e1  9d fd ff eb 80 10 9f e5  ................
      0210: 04 00 a0 e1 be fd ff eb  05 00 a0 e1 2f 10 a0 e3  ............/...
      0220: a3 fd ff eb 00 10 50 e2  04 60 a0 e1 05 10 a0 01  ......P..`......
      0230: 01 10 81 12 06 00 a0 e1  fa 20 a0 e3 44 fd ff eb  ......... ..D...
      0240: 06 00 a0 e1 42 10 a0 e3  6d 2f a0 e3 02 20 82 e2  ....B...m/... ..
      0250: 9b fd ff eb 00 50 50 e2  0f 00 00 ba 05 00 a0 e1  .....PP.........
      0260: 08 10 a0 e1 07 20 a0 e1  41 fd ff eb 00 40 a0 e1  ..... ..A....@..
      0270: 05 00 a0 e1 42 fd ff eb  06 10 a0 e1 14 00 9f e5  ....B...........
      0280: 04 20 a0 e1 7e fd ff eb  04 00 a0 e1 05 00 00 ea  . ..~...........
      0290: 0c d1 00 00 1c d1 00 00  24 d1 00                 ........$..
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0047 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 00 06 00 a0 e1 3b fd ff  eb 00 00 e0 e3 f0 a9 1b  .....;..........
      0010: e9 0d c0 a0 e1 f0 d8 2d  e9 04 b0 4c e2 00 70 a0  .......-...L..p.
      0020: e1 02 50 a0 e1 00 60 51  e2 00 00 a0 e3 f0 a8 1b  ..P...`Q........
      0030: 09 a4 00 80 e2 47 fd ff  eb 00 40 50 e2 04 00 a0  .....G....@P....
      0040: 01 f0 a8 1b 09 04 00 a0  e1 00 10 a0 e3 a4 20 a0  .............. .
      0050: e3 7c fd ff eb 30 60 84  e5 a5 30 a0 e1 01 30 03  .|...0`...0...0.
      0060: e2 18 30 84 e5 25 21 a0  e1 01 20 02 e2 1c 20 84  ..0..%!... ... .
      0070: e5 a5 31 a0 e1 01 30 03  e2 20 30 84 e5 00 20 e0  ..1...0.. 0... .
      0080: e3 08 20 84 e5 0c 20 84  e5 10 20 84 e5 80 30 a0  .. ... ... ...0.
      0090: e3 14 30 84 e5 34 70 84  e5 00 50 a0 e3 38 50 84  ..0..4p...P..8P.
      00a0: e5 01 0b a0 e3 65 0d 00  eb 05 00 50 e1 28 00 84  .....e.....P.(..
      00b0: e5 13 00 00 0a 01 0b a0  e3 60 0d 00 eb 05 00 50  .........`.....P
      00c0: e1 24 00 84 e5 0e 00 00  0a 01 3b a0 e3 03 20 a0  .$........;... .
      00d0: e1 02 20 c4 e5 43 34 a0  e1 03 30 c4 e5 ff 20 a0  .. ..C4...0... .
      00e0: e3 00 20 c4 e5 01 50 c4  e5 04 50 c4 e5 05 30 c4  .. ...P...P...0.
      00f0: e5 0d 00 a0 e3 01 10 a0  e3 06 fd ff eb 04 00 a0  ................
      0100: e1 f0 a8 1b e9 24 00 94  e5 00 00 50 e3 00 00 00  .....$.....P....
      0110: 0a 7f 0d 00 eb 28 00 94  e5 00 00 50 e3 00 00 00  .....(.....P....
      0120: 0a 7b 0d 00 eb 04 00 a0  e1 42 fd ff eb 00 00 a0  .{.......B......
      0130: e3 f0 a8 1b e9 0d c0 a0  e1 00 d8 2d e9 04 b0 4c  ...........-...L
      0140: e2 00 c0 50 e2 00 00 e0  03 00 a8 1b 09 00 00 51  ...P...........Q
      0150: e3 07 00 00 0a 01 e0 a0  e1 0f 00 be e8 88 c0 8c  ................
      0160: e2 0f 00 ac e8                                    .....
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 2
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 03 00  9e e8 03 00 8c e8 01 00  ...H............
      0010: a0 e3 00 a8 1b e9 00 00  e0 e3 00 a8 1b e9 0d c0  ................
      0020: a0 e1 10 d8 2d e9 04 b0  4c e2 00 40 50 e2 10 a8  ....-...L..@P...
      0030: 1b 09 04 00 a0 e1 9d 08  00 eb 04 00 a0 e1 e2 08  ................
      0040: 00 eb 24 00 94 e5 00 00  50 e3 00 00 00 0a 58 0d  ..$.....P.....X.
      0050: 00 eb 28 00 94 e5 00 00  50 e3 00 00 00 0a 54 0d  ..(.....P.....T.
      0060: 00 eb 04 00 a0 e1 1b fd  ff eb 10 a8 1b e9 0d c0  ................
      0070: a0 e1 00 d8 2d e9 04 b0  4c e2 00 00 50 e3 a0 10  ....-...L...P...
      0080: 80 15 00 a8 1b e9 0d c0  a0 e1 00 d8 2d e9 04 b0  ............-...
      0090: 4c e2 00 00 50 e3 a0 00  90 15 00 a8 1b 19 00 00  L...P...........
      00a0: a0 e3 00 a8 1b e9 0d c0  a0 e1 00 d8 2d e9 04 b0  ............-...
      00b0: 4c e2 00 00 50 e3 00 a8  1b 09 00 00 51 e3 00 a8  L...P.......Q...
      00c0: 1b 09 00 00 52 e3 30 10  80 e5 a0 20 80 15 00 a8  ....R.0.... ....
      00d0: 1b e9 0d c0 a0 e1 10 d8  2d e9 04 b0 4c e2 01 18  ........-...L...
      00e0: a0 e1 21 18 a0 e1 02 28  a0 e1 22 28 a0 e1 00 40  ..!....(.."(...@
      00f0: 50 e2 0d 00 e0 03 10 a8  1b 09 2c 30 94 e5 00 00  P.........,0....
      0100: 53 e3 0f 00 e0 e3 10 a8  1b 19 7f 0c a0 e3 01 00  S...............
      0110: 80 e2 ff 30 41 e2 03 38  a0 e1 23 08 50 e1 01 c0  ...0A..8..#.P...
      0120: a0 e1 01 00 00 2a 06 00  e0 e3 10 a8 1b e9 ff 30  .....*.........0
      0130: 42 e2 03 38 a0 e1 23 08  50 e1 02 00 a0 e1 f8 ff  B..8..#.P.......
      0140: ff 3a 02 c0 c4 e5 41 34  a0 e1 03 30 c4 e5 04 00  .:....A4...0....
      0150: c4 e5 42 34 a0 e1 05 30  c4 e5 02 20 d4 e5 03 10  ..B4...0... ....
      0160: d4 e5 28 00 94 e5 01 14  82 e1 f7 0c 00 eb 00 00  ..(.............
      0170: 50 e3 28 00 84 e5 0a 00  00 0a 04 30 d4 e5 05 10  P.(........0....
      0180: d4 e5 24 00 94 e5 01 14  83 e1 ef 0c 00 eb 00 30  ..$............0
      0190: a0 e1 00 00 53 e3 0b 00  e0 03 00 00 a0 13 24 30  ....S.........$0
      01a0: 84 e5 10 a8 1b e9 0b 00  e0 e3 10 a8 1b e9 0d c0  ................
      01b0: a0 e1 10 d8 2d e9 04 b0  4c e2 00 40 50 e2 00 00  ....-...L..@P...
      01c0: e0 03 10 a8 1b 09 00 00  51 e3 00 30 a0 13 01 30  ........Q..0...0
      01d0: a0 03 00 00 52 e3 00 30  a0 03 00 00 53 e3 04 00  ....R..0....S...
      01e0: 00 1a 40 00 84 e2 af fc  ff eb 04 00 a0 e1 54 08  ..@...........T.
      01f0: 00 eb 10 a8 1b e9 00 00  e0 e3 10 a8 1b e9 0d c0  ................
      0200: a0 e1 f0 d9 2d e9 04 b0  4c e2 01 70 a0 e1 02 80  ....-...L..p....
      0210: a0 e1 00 60 50 e2 01 00  00 1a 00 00 a0 e3 f0 a9  ...`P...........
      0220: 1b e9 08 30 96 e5 00 00  53 e3 fa ff ff ba 0c 30  ...0....S......0
      0230: 96 e5 00 00 53 e3 f7 ff  ff ba 2c 40 96 e5 00 00  ....S.....,@....
      0240: a0 e3 00 00 54 e1 f0 a9  1b 19 a4 00 80 e2 69 fc  ....T.........i.
      0250: ff eb 00 50 50 e2 ef ff  ff 0a 05 00 a0 e1 04 10  ...PP...........
      0260: a0 e1 a4 20 a0 e3 9f fc  ff eb 00 00 57 e3 30 70  ... ........W.0p
      0270: 85 15 30 30 96 05 30 30  85 05 00 00 58 e3 a0 80  ..00..00....X...
      0280: 85 15 a0 30 96 05 a0 30  85 05 18 30 96 e5 18 30  ...0...0...0...0
      0290: 85 e5 34 00 85 e2 34 10  86 e2 54                 ..4...4...T
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...

**************************File Transfer in between****************************


> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 73 65  74 72 73 70 00 63 6c 6f  ...H..setrsp.clo
      0010: 73 65 40 40 47 4c 49 42  43 5f 32 2e 30 00 70 65  se@@GLIBC_2.0.pe
      0020: 72 72 6f 72 40 40 47 4c  49 42 43 5f 32 2e 30 00  rror@@GLIBC_2.0.
      0030: 49 6e 4f 42 45 58 5f 53  65 72 76 65 72 52 65 67  InOBEX_ServerReg
      0040: 69 73 74 65 72 00 6f 62  65 78 5f 64 65 6c 69 76  ister.obex_deliv
      0050: 65 72 5f 65 76 65 6e 74  00 66 70 72 69 6e 74 66  er_event.fprintf
      0060: 40 40 47 4c 49 42 43 5f  32 2e 30 00 73 69 67 6e  @@GLIBC_2.0.sign
      0070: 61 6c 40 40 47 4c 49 42  43 5f 32 2e 30 00 69 6e  al@@GLIBC_2.0.in
      0080: 73 65 72 74 5f 75 62 79  74 65 5f 68 65 61 64 65  sert_ubyte_heade
      0090: 72 00 49 6e 4f 42 45 58  5f 54 72 61 6e 73 70 6f  r.InOBEX_Transpo
      00a0: 72 74 43 6f 6e 6e 65 63  74 00 73 65 6c 65 63 74  rtConnect.select
      00b0: 40 40 47 4c 49 42 43 5f  32 2e 30 00 63 6c 69 65  @@GLIBC_2.0.clie
      00c0: 6e 74 5f 64 6f 6e 65 00  6f 62 65 78 5f 64 61 74  nt_done.obex_dat
      00d0: 61 5f 72 65 71 75 65 73  74 00 6f 62 65 78 5f 64  a_request.obex_d
      00e0: 61 74 61 5f 69 6e 64 69  63 61 74 69 6f 6e 00 4f  ata_indication.O
      00f0: 42 45 58 5f 47 65 74 43  75 73 74 6f 6d 44 61 74  BEX_GetCustomDat
      0100: 61 00 5f 5f 62 73 73 5f  73 74 61 72 74 5f 5f 00  a.__bss_start__.
      0110: 4f 42 45 58 5f 47 65 74  52 65 73 70 6f 6e 73 65  OBEX_GetResponse
      0120: 4d 65 73 73 61 67 65 00  6f 62 65 78 5f 6f 62 6a  Message.obex_obj
      0130: 65 63 74 5f 72 65 70 61  72 73 65 68 65 61 64 65  ect_reparseheade
      0140: 72 73 00 6f 62 65 78 5f  6f 62 6a 65 63 74 5f 73  rs.obex_object_s
      0150: 65 6e 64 00 67 65 74 5f  66 69 6c 65 73 69 7a 65  end.get_filesize
      0160: 00 6f 62 65 78 5f 74 72  61 6e 73 70 6f 72 74 5f  .obex_transport_
      0170: 64 69 73 63 6f 6e 6e 65  63 74 5f 72 65 71 75 65  disconnect_reque
      0180: 73 74 00 67 5f 6e 65 74  62 75 66 5f 74 61 69 6c  st.g_netbuf_tail
      0190: 72 6f 6f 6d 00 6f 62 65  78 5f 6f 62 6a 65 63 74  room.obex_object
      01a0: 5f 73 65 74 63 6d 64 00  61 63 63 65 70 74 40 40  _setcmd.accept@@
      01b0: 47 4c 49 42 43 5f 32 2e  30 00 6f 62 65 78 5f 73  GLIBC_2.0.obex_s
      01c0: 65 72 76 65 72 00 5f 69  6e 69 74 00 67 5f 6e 65  erver._init.g_ne
      01d0: 74 62 75 66 5f 66 72 65  65 00 6f 62 65 78 5f 63  tbuf_free.obex_c
      01e0: 61 6e 63 65 6c 72 65 71  75 65 73 74 00 6c 69 73  ancelrequest.lis
      01f0: 74 65 6e 40 40 47 4c 49  42 43 5f 32 2e 30 00 4f  ten@@GLIBC_2.0.O
      0200: 42 45 58 5f 43 68 61 72  54 6f 55 6e 69 63 6f 64  BEX_CharToUnicod
      0210: 65 00 42 74 4f 42 45 58  5f 54 72 61 6e 73 70 6f  e.BtOBEX_Transpo
      0220: 72 74 43 6f 6e 6e 65 63  74 00 69 6e 6f 62 65 78  rtConnect.inobex
      0230: 5f 70 72 65 70 61 72 65  5f 63 6f 6e 6e 65 63 74  _prepare_connect
      0240: 00 4f 42 45 58 5f 4f 62  6a 65 63 74 52 65 50 61  .OBEX_ObjectRePa
      0250: 72 73 65 48 65 61 64 65  72 73 00 6d 61 6c 6c 6f  rseHeaders.mallo
      0260: 63 40 40 47 4c 49 42 43  5f 32 2e 30 00 69 72 6f  c@@GLIBC_2.0.iro
      0270: 62 65 78 5f 70 72 65 70  61 72 65 5f 6c 69 73 74  bex_prepare_list
      0280: 65 6e 00 67 5f 6e 65 74  62 75 66 5f 70 75 73 68  en.g_netbuf_push
      0290: 00 69 72 6f 62 65 78 5f  61 63 63                 .irobex_acc
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0047 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 65 70 74 00 62 74 6f 62  65 78 5f 63 6f 6e 6e 65  ept.btobex_conne
      0010: 63 74 5f 72 65 71 75 65  73 74 00 6d 65 6d 6d 6f  ct_request.memmo
      0020: 76 65 40 40 47 4c 49 42  43 5f 32 2e 30 00 6f 62  ve@@GLIBC_2.0.ob
      0030: 65 78 5f 74 72 61 6e 73  70 6f 72 74 5f 72 65 61  ex_transport_rea
      0040: 64 00 67 5f 6e 65 74 62  75 66 5f 70 75 6c 6c 00  d.g_netbuf_pull.
      0050: 69 6e 6f 62 65 78 5f 61  63 63 65 70 74 00 67 65  inobex_accept.ge
      0060: 74 73 6f 63 6b 6f 70 74  40 40 47 4c 49 42 43 5f  tsockopt@@GLIBC_
      0070: 32 2e 30 00 73 74 64 65  72 72 40 40 47 4c 49 42  2.0.stderr@@GLIB
      0080: 43 5f 32 2e 30 00 61 62  6f 72 74 40 40 47 4c 49  C_2.0.abort@@GLI
      0090: 42 43 5f 32 2e 30 00 4f  42 45 58 5f 4f 62 6a 65  BC_2.0.OBEX_Obje
      00a0: 63 74 44 65 6c 65 74 65  00 5f 5f 64 65 72 65 67  ctDelete.__dereg
      00b0: 69 73 74 65 72 5f 66 72  61 6d 65 5f 69 6e 66 6f  ister_frame_info
      00c0: 00 5f 5f 78 73 74 61 74  40 40 47 4c 49 42 43 5f  .__xstat@@GLIBC_
      00d0: 32 2e 30 00 6f 62 65 78  5f 6f 62 6a 65 63 74 5f  2.0.obex_object_
      00e0: 67 65 74 6e 65 78 74 68  65 61 64 65 72 00 73 65  getnextheader.se
      00f0: 74 73 6f 63 6b 6f 70 74  40 40 47 4c 49 42 43 5f  tsockopt@@GLIBC_
      0100: 32 2e 30 00 69 6e 6f 62  65 78 5f 64 69 73 63 6f  2.0.inobex_disco
      0110: 6e 6e 65 63 74 5f 73 65  72 76 65 72 00 62 74 6f  nnect_server.bto
      0120: 62 65 78 5f 6c 69 73 74  65 6e 00 4f 42 45 58 5f  bex_listen.OBEX_
      0130: 53 65 74 54 72 61 6e 73  70 6f 72 74 4d 54 55 00  SetTransportMTU.
      0140: 4f 42 45 58 5f 49 6e 69  74 00 6f 62 65 78 5f 6f  OBEX_Init.obex_o
      0150: 62 6a 65 63 74 5f 64 65  6c 65 74 65 00 5f 5f 62  bject_delete.__b
      0160: 73 73 5f 65 6e                                    ss_en
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 02 04 00 48 03 fd 64 5f  5f 00 6f 62 65 78 5f 64  ...H..d__.obex_d
      0010: 65 62 75 67 00 73 6c 69  73 74 5f 61 70 70 65 6e  ebug.slist_appen
      0020: 64 00 73 65 72 76 65 72  5f 64 6f 6e 65 00 5f 73  d.server_done._s
      0030: 74 61 72 74 00 73 61 66  65 5f 73 61 76 65 5f 66  tart.safe_save_f
      0040: 69 6c 65 00 67 5f 6e 65  74 62 75 66 5f 70 72 69  ile.g_netbuf_pri
      0050: 6e 74 00 69 6e 6f 62 65  78 5f 63 6f 6e 6e 65 63  nt.inobex_connec
      0060: 74 5f 72 65 71 75 65 73  74 00 67 5f 6e 65 74 62  t_request.g_netb
      0070: 75 66 5f 70 75 74 00 68  61 6e 64 6c 65 00 6f 62  uf_put.handle.ob
      0080: 65 78 5f 74 72 61 6e 73  70 6f 72 74 5f 6c 69 73  ex_transport_lis
      0090: 74 65 6e 00 73 74 72 6c  65 6e 40 40 47 4c 49 42  ten.strlen@@GLIB
      00a0: 43 5f 32 2e 30 00 69 6e  73 65 72 74 5f 62 79 74  C_2.0.insert_byt
      00b0: 65 5f 73 74 72 65 61 6d  5f 68 65 61 64 65 72 00  e_stream_header.
      00c0: 6f 62 65 78 5f 65 76 65  6e 74 00 62 74 6f 62 65  obex_event.btobe
      00d0: 78 5f 70 72 65 70 61 72  65 5f 6c 69 73 74 65 6e  x_prepare_listen
      00e0: 00 62 74 6f 62 65 78 5f  64 69 73 63 6f 6e 6e 65  .btobex_disconne
      00f0: 63 74 5f 73 65 72 76 65  72 00 4f 42 45 58 5f 53  ct_server.OBEX_S
      0100: 65 74 55 73 65 72 43 61  6c 6c 42 61 63 6b 00 73  etUserCallBack.s
      0110: 6c 69 73 74 5f 72 65 6d  6f 76 65 00 42 74 4f 42  list_remove.BtOB
      0120: 45 58 5f 53 65 72 76 65  72 52 65 67 69 73 74 65  EX_ServerRegiste
      0130: 72 00 4f 42 45 58 5f 52  65 71 75 65 73 74 00 69  r.OBEX_Request.i
      0140: 6e 6f 62 65 78 5f 64 69  73 63 6f 6e 6e 65 63 74  nobex_disconnect
      0150: 5f 72 65 71 75 65 73 74  00 4f 42 45 58 5f 54 72  _request.OBEX_Tr
      0160: 61 6e 73 70 6f 72 74 43  6f 6e 6e 65 63 74 00 4f  ansportConnect.O
      0170: 42 45 58 5f 52 65 67 69  73 74 65 72 43 54 72 61  BEX_RegisterCTra
      0180: 6e 73 70 6f 72 74 00 69  72 6f 62 65 78 5f 64 69  nsport.irobex_di
      0190: 73 63 6f 6e 6e 65 63 74  5f 73 65 72 76 65 72 00  sconnect_server.
      01a0: 46 64 4f 42 45 58 5f 54  72 61 6e 73 70 6f 72 74  FdOBEX_Transport
      01b0: 53 65 74 75 70 00 5f 5f  62 73 73 5f 73 74 61 72  Setup.__bss_star
      01c0: 74 00 4f 42 45 58 5f 43  61 6e 63 65 6c 52 65 71  t.OBEX_CancelReq
      01d0: 75 65 73 74 00 6d 61 69  6e 00 67 5f 6e 65 74 62  uest.main.g_netb
      01e0: 75 66 5f 6e 65 77 00 5f  5f 6c 69 62 63 5f 73 74  uf_new.__libc_st
      01f0: 61 72 74 5f 6d 61 69 6e  40 40 47 4c 49 42 43 5f  art_main@@GLIBC_
      0200: 32 2e 30 00 69 72 6f 62  65 78 5f 63 6f 6e 6e 65  2.0.irobex_conne
      0210: 63 74 5f 72 65 71 75 65  73 74 00 6f 62 65 78 5f  ct_request.obex_
      0220: 6f 62 6a 65 63 74 5f 61  64 64 68 65 61 64 65 72  object_addheader
      0230: 00 64 6f 5f 73 79 6e 63  5f 72 65 71 75 65 73 74  .do_sync_request
      0240: 00 4f 42 45 58 5f 53 65  74 55 73 65 72 44 61 74  .OBEX_SetUserDat
      0250: 61 00 5f 5f 65 6e 64 5f  5f 00 72 65 61 6c 6c 6f  a.__end__.reallo
      0260: 63 40 40 47 4c 49 42 43  5f 32 2e 30 00 6f 62 65  c@@GLIBC_2.0.obe
      0270: 78 5f 74 72 61 6e 73 70  6f 72 74 5f 68 61 6e 64  x_transport_hand
      0280: 6c 65 5f 69 6e 70 75 74  00 4f 42 45 58 5f 47 65  le_input.OBEX_Ge
      0290: 74 55 73 65 72 44 61 74  61 00 64                 tUserData.d
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 174
    L2CAP(d): cid 0x0047 len 362 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 357 fcs 0xce 
      0000: 61 74 61 5f 73 74 61 72  74 00 67 5f 6e 65 74 62  ata_start.g_netb
      0010: 75 66 5f 70 75 74 5f 64  61 74 61 00 4f 42 45 58  uf_put_data.OBEX
      0020: 5f 54 72 61 6e 73 70 6f  72 74 44 69 73 63 6f 6e  _TransportDiscon
      0030: 6e 65 63 74 00 70 72 69  6e 74 66 40 40 47 4c 49  nect.printf@@GLI
      0040: 42 43 5f 32 2e 30 00 6f  62 65 78 5f 6f 62 6a 65  BC_2.0.obex_obje
      0050: 63 74 5f 72 65 61 64 73  74 72 65 61 6d 00 62 69  ct_readstream.bi
      0060: 6e 64 40 40 47 4c 49 42  43 5f 32 2e 30 00 5f 66  nd@@GLIBC_2.0._f
      0070: 69 6e 69 00 69 72 6f 62  65 78 5f 6c 69 73 74 65  ini.irobex_liste
      0080: 6e 00 6d 65 6d 63 70 79  40 40 47 4c 49 42 43 5f  n.memcpy@@GLIBC_
      0090: 32 2e 30 00 4f 42 45 58  5f 4f 62 6a 65 63 74 4e  2.0.OBEX_ObjectN
      00a0: 65 77 00 73 74 72 72 63  68 72 40 40 47 4c 49 42  ew.strrchr@@GLIB
      00b0: 43 5f 32 2e 30 00 6f 62  65 78 5f 63 6c 69 65 6e  C_2.0.obex_clien
      00c0: 74 00 4f 42 45 58 5f 52  65 73 70 6f 6e 73 65 54  t.OBEX_ResponseT
      00d0: 6f 53 74 72 69 6e 67 00  4f 42 45 58 5f 53 65 74  oString.OBEX_Set
      00e0: 43 75 73 74 6f 6d 44 61  74 61 00 4f 42 45 58 5f  CustomData.OBEX_
      00f0: 55 6e 69 63 6f 64 65 54  6f 43 68 61 72 00 69 6e  UnicodeToChar.in
      0100: 6f 62 65 78 5f 70 72 65  70 61 72 65 5f 6c 69 73  obex_prepare_lis
      0110: 74 65 6e 00 4f 42 45 58  5f 4f 62 6a 65 63 74 47  ten.OBEX_ObjectG
      0120: 65 74 4e 65 78 74 48 65  61 64 65 72 00 6f 62 65  etNextHeader.obe
      0130: 78 5f 69 6e 73 65 72 74  5f 63 6f 6e 6e 65 63 74  x_insert_connect
      0140: 66 72 61 6d 65 00 49 72  4f 42 45 58 5f 54 72 61  frame.IrOBEX_Tra
      0150: 6e 73 70 6f 72 74 43 6f  6e 6e 65 63 74 00 6f 70  nsportConnect.op
      0160: 65 6e 40 40 47                                    en@@G
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: 90 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 192
< ACL data: handle 40 flags 0x01 dlen 100
    L2CAP(d): cid 0x0047 len 672 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 667 fcs 0xce 
      0000: 82 03 40 49 03 3d 4c 49  42 43 5f 32 2e 30 00 67  ..@I.=LIBC_2.0.g
      0010: 5f 6e 65 74 62 75 66 5f  70 72 65 70 65 6e 64 5f  _netbuf_prepend_
      0020: 68 64 72 00 67 5f 6e 65  74 62 75 66 5f 74 72 69  hdr.g_netbuf_tri
      0030: 6d 00 4f 42 45 58 5f 48  61 6e 64 6c 65 49 6e 70  m.OBEX_HandleInp
      0040: 75 74 00 65 61 73 79 5f  72 65 61 64 66 69 6c 65  ut.easy_readfile
      0050: 00 67 5f 6e 65 74 62 75  66 5f 68 65 61 64 72 6f  .g_netbuf_headro
      0060: 6f 6d 00 4f 42 45 58 5f  4f 62 6a 65 63 74 53 65  om.OBEX_ObjectSe
      0070: 74 4e 6f 6e 48 64 72 44  61 74 61 00 4f 42 45 58  tNonHdrData.OBEX
      0080: 5f 47 65 74 46 44 00 62  74 6f 62 65 78 5f 64 69  _GetFD.btobex_di
      0090: 73 63 6f 6e 6e 65 63 74  5f 72 65 71 75 65 73 74  sconnect_request
      00a0: 00 5f 65 64 61 74 61 00  5f 47 4c 4f 42 41 4c 5f  ._edata._GLOBAL_
      00b0: 4f 46 46 53 45 54 5f 54  41 42 4c 45 5f 00 66 72  OFFSET_TABLE_.fr
      00c0: 65 65 40 40 47 4c 49 42  43 5f 32 2e 30 00 5f 65  ee@@GLIBC_2.0._e
      00d0: 6e 64 00 66 69 6e 69 73  68 65 64 00 77 61 69 74  nd.finished.wait
      00e0: 5f 66 6f 72 5f 72 73 70  00 6d 65 6d 73 65 74 40  _for_rsp.memset@
      00f0: 40 47 4c 49 42 43 5f 32  2e 30 00 63 6f 6e 6e 65  @GLIBC_2.0.conne
      0100: 63 74 40 40 47 4c 49 42  43 5f 32 2e 30 00 73 74  ct@@GLIBC_2.0.st
      0110: 72 6e 63 70 79 40 40 47  4c 49 42 43 5f 32 2e 30  rncpy@@GLIBC_2.0
      0120: 00 6f 62 65 78 5f 74 72  61 6e 73 70 6f 72 74 5f  .obex_transport_
      0130: 63 6f 6e 6e 65 63 74 5f  72 65 71 75 65 73 74 00  connect_request.
      0140: 69 72 6f 62 65 78 5f 70  72 65 70 61 72 65 5f 63  irobex_prepare_c
      0150: 6f 6e 6e 65 63 74 00 69  6e 6f 62 65 78 5f 6c 69  onnect.inobex_li
      0160: 73 74 65 6e 00 4f 42 45  58 5f 43 6c 65 61 6e 75  sten.OBEX_Cleanu
      0170: 70 00 4f 42 45 58 5f 4f  62 6a 65 63 74 47 65 74  p.OBEX_ObjectGet
      0180: 4e 6f 6e 48 64 72 44 61  74 61 00 62 75 69 6c 64  NonHdrData.build
      0190: 5f 6f 62 6a 65 63 74 5f  66 72 6f 6d 5f 66 69 6c  _object_from_fil
      01a0: 65 00 70 75 74 5f 64 6f  6e 65 00 6f 62 65 78 5f  e.put_done.obex_
      01b0: 72 65 73 70 6f 6e 73 65  5f 72 65 71 75 65 73 74  response_request
      01c0: 00 5f 49 4f 5f 73 74 64  69 6e 5f 75 73 65 64 00  ._IO_stdin_used.
      01d0: 6f 62 65 78 5f 6f 62 6a  65 63 74 5f 6e 65 77 00  obex_object_new.
      01e0: 49 72 4f 42 45 58 5f 53  65 72 76 65 72 52 65 67  IrOBEX_ServerReg
      01f0: 69 73 74 65 72 00 73 70  72 69 6e 74 66 40 40 47  ister.sprintf@@G
      0200: 4c 49 42 43 5f 32 2e 30  00 5f 5f 64 61 74 61 5f  LIBC_2.0.__data_
      0210: 73 74 61 72 74 00 6c 61  73 74 5f 72 73 70 00 62  start.last_rsp.b
      0220: 74 6f 62 65 78 5f 61 63  63 65 70 74 00 73 6f 63  tobex_accept.soc
      0230: 6b 65 74 40 40 47 4c 49  42 43 5f 32 2e 30 00 6f  ket@@GLIBC_2.0.o
      0240: 62 65 78 5f 70 72 6f 74  6f 63 6f 6c 5f 74 79 70  bex_protocol_typ
      0250: 65 00 73 65 72 76 65 72  5f 72 65 71 75 65 73 74  e.server_request
      0260: 00 6f 62 65 78 5f 72 65  73 70 6f 6e 73 65 5f 74  .obex_response_t
      0270: 6f 5f 73 74 72 69 6e 67  00 67 5f 6e 65 74 62 75  o_string.g_netbu
      0280: 66 5f 72 65 73 65 72 76  65 00 6f 62 65 78 5f 64  f_reserve.obex_d
      0290: 65 6c 65 74 65 5f 73 6f  63 6b 65                 elete_socke
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 174
    L2CAP(d): cid 0x0047 len 170 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 165 fcs 0xce 
      0000: 74 00 4f 42 45 58 5f 4f  62 6a 65 63 74 41 64 64  t.OBEX_ObjectAdd
      0010: 48 65 61 64 65 72 00 5f  5f 72 65 67 69 73 74 65  Header.__registe
      0020: 72 5f 66 72 61 6d 65 5f  69 6e 66 6f 00 4f 42 45  r_frame_info.OBE
      0030: 58 5f 4f 62 6a 65 63 74  53 65 74 48 64 72 4f 66  X_ObjectSetHdrOf
      0040: 66 73 65 74 00 67 5f 6e  65 74 62 75 66 5f 72 65  fset.g_netbuf_re
      0050: 63 79 63 6c 65 00 72 65  61 64 40 40 47 4c 49 42  cycle.read@@GLIB
      0060: 43 5f 32 2e 30 00 6f 62  65 78 5f 64 75 6d 70 00  C_2.0.obex_dump.
      0070: 5f 5f 67 6d 6f 6e 5f 73  74 61 72 74 5f 5f 00 6f  __gmon_start__.o
      0080: 62 65 78 5f 6f 62 6a 65  63 74 5f 72 65 63 65 69  bex_object_recei
      0090: 76 65 00 73 74 72 63 70  79 40 40 47 4c 49 42 43  ve.strcpy@@GLIBC
      00a0: 5f 32 2e 30 00                                    _2.0.
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 2
      0000: a0 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 11
    L2CAP(d): cid 0x0047 len 7 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 3 fcs 0xce 
      0000: 81 00 03                                          ...
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(d): cid 0x0040 len 8 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 3 fcs 0x8 credits 1
      0000: a0 00 03                                          ...
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0047 len 4 [psm 3]
      RFCOMM(s): DISC: cr 1 dlci 18 pf 1 ilen 0 fcs 0xd3 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): DISC: cr 0 dlci 18 pf 1 ilen 0 fcs 0xb2 
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0047 len 4 [psm 3]
      RFCOMM(s): UA: cr 0 dlci 18 pf 1 ilen 0 fcs 0x98 
< HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...
< ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0047 len 4 [psm 3]
      RFCOMM(s): DISC: cr 1 dlci 0 pf 1 ilen 0 fcs 0xfd 
< ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(s): Disconn req: dcid 0x0047 scid 0x0040
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 40 packets 1
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): DM: cr 1 dlci 18 pf 1 ilen 0 fcs 0x18 
> ACL data: handle 40 flags 0x02 dlen 8
    L2CAP(d): cid 0x0040 len 4 [psm 3]
      RFCOMM(s): UA: cr 1 dlci 0 pf 1 ilen 0 fcs 0xd7 
> ACL data: handle 40 flags 0x02 dlen 12
    L2CAP(s): Disconn rsp: dcid 0x0047 scid 0x0040
< HCI Command: Disconnect (0x01|0x0006) plen 3
    handle 40 reason 0x13
    Reason: Remote User Terminated Connection
> HCI Event: Command Status (0x0f) plen 4
    Disconnect (0x01|0x0006) status 0x00 ncmd 1
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 40 reason 0x16
    Reason: Connection Terminated by Local Host

[-- Attachment #3: hci_core.c.diff --]
[-- Type: application/octet-stream, Size: 3001 bytes --]

--- C:\Copy of hci_core.c	2003-03-14 03:53:16.000000000 +-0530
+++ C:\hci_core.c	2006-08-21 17:23:36.000000000 +-0530
@@ -73,12 +73,13 @@
 #define HCI_MAX_PROTO	2
 struct hci_proto *hci_proto[HCI_MAX_PROTO];
 
 /* HCI notifiers list */
 static struct notifier_block *hci_notifier;
 
+extern int __controller_to_host_fc;
 
 /* ---- HCI notifications ---- */
 
 int hci_register_notifier(struct notifier_block *nb)
 {
 	return notifier_chain_register(&hci_notifier, nb);
@@ -221,24 +222,22 @@
 	/* Read Local Supported Features */
 	hci_send_cmd(hdev, OGF_INFO_PARAM, OCF_READ_LOCAL_FEATURES, 0, NULL);
 
 	/* Read Buffer Size (ACL mtu, max pkt, etc.) */
 	hci_send_cmd(hdev, OGF_INFO_PARAM, OCF_READ_BUFFER_SIZE, 0, NULL);
 
-#if 0
 	/* Host buffer size */
 	{
 		host_buffer_size_cp bs;
 		bs.acl_mtu = __cpu_to_le16(HCI_MAX_ACL_SIZE);
 		bs.sco_mtu = HCI_MAX_SCO_SIZE;
-		bs.acl_max_pkt = __cpu_to_le16(0xffff);
-		bs.sco_max_pkt = __cpu_to_le16(0xffff);
+		bs.acl_max_pkt = __cpu_to_le16(0x0008);
+		bs.sco_max_pkt = __cpu_to_le16(0x0008);
 		hci_send_cmd(hdev, OGF_HOST_CTL, OCF_HOST_BUFFER_SIZE,
 				HOST_BUFFER_SIZE_CP_SIZE, &bs);
 	}
-#endif
 
 	/* Read BD Address */
 	hci_send_cmd(hdev, OGF_INFO_PARAM, OCF_READ_BD_ADDR, 0, NULL);
 
 	/* Optional initialization */
 
@@ -1031,13 +1030,16 @@
 		memcpy(skb_put(skb, plen), param, plen);
 
 	BT_DBG("skb len %d", skb->len);
 
 	skb->pkt_type = HCI_COMMAND_PKT;
 	skb->dev = (void *) hdev;
-	skb_queue_tail(&hdev->cmd_q, skb);
+	if(ocf != OCF_HOST_NUM_OF_COMPLETED_PACKETS)
+		skb_queue_tail(&hdev->cmd_q, skb);
+	else
+		skb_queue_tail(&hdev->raw_q, skb);
 	hci_sched_cmd(hdev);
 
 	return 0;
 }
 
 /* Get data from the previously sent command */
@@ -1273,12 +1275,13 @@
 /* ACL data packet */
 static inline void hci_acldata_packet(struct hci_dev *hdev, struct sk_buff *skb)
 {
 	hci_acl_hdr *ah = (void *) skb->data;
 	struct hci_conn *conn;
 	__u16 handle, flags;
+	host_num_of_completed_packets_cp cp;
 
 	skb_pull(skb, HCI_ACL_HDR_SIZE);
 
 	handle = __le16_to_cpu(ah->handle);
 	flags  = acl_flags(handle);
 	handle = acl_handle(handle);
@@ -1287,12 +1290,26 @@
 
 	hdev->stat.acl_rx++;
 
 	hci_dev_lock(hdev);
 	conn = conn_hash_lookup_handle(hdev, handle);
 	hci_dev_unlock(hdev);
+
+	/* If flow control has been enabled from Controller to Host
+	 * send Host Number of Completed Packets Command
+	 * Note that there is no event generated for this command
+	 */
+
+	if(__controller_to_host_fc) {
+		cp.num_of_handles = 0x01;
+		cp.handle = handle;
+		cp.host_num_of_completed_packets = 0x01;
+		hci_send_cmd(hdev, OGF_HOST_CTL, OCF_HOST_NUM_OF_COMPLETED_PACKETS, 
+				OCF_HOST_NUM_OF_COMPLETED_PACKETS_CP_SIZE, &cp);
+		printk(KERN_INFO "Sending Host No of Completed Packets:\n");
+	}
 	
 	if (conn) {
 		register struct hci_proto *hp;
 
 		/* Send to upper protocol */
 		if ((hp = hci_proto[HCI_PROTO_L2CAP]) && hp->recv_acldata) {

[-- Attachment #4: Type: text/plain, Size: 373 bytes --]

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

[-- Attachment #5: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 14:50                                   ` Marcel Holtmann
@ 2006-08-21 13:05                                     ` Mayank BATRA
  2006-08-21 14:00                                       ` Marcel Holtmann
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-21 13:05 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Marcel,

> I added the two missing decodings to hcidump now.

I see the following five missing decodings in hcidump. Which ones did you
miss out?

(1)< HCI Command: Host Buffer Size (0x03|0x0033) plen 7
   0000: 00 04 ff 08 00 08 00                              .......

(2) > HCI Event: Command Complete (0x0e) plen 4
    Host Buffer Size (0x03|0x0033) ncmd 1
    0000: 00                                                .

(3) < HCI Command: Set Host Controller To Host Flow Control (0x03|0x0031)
plen 1
    0000: 01                                                .

(4) > HCI Event: Command Complete (0x0e) plen 4
    Set Host Controller To Host Flow Control (0x03|0x0031) ncmd 1
    0000: 00                                                .

(5) < HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
  0000: 01 28 00 01 00                                    .(...

> Need to check that. At least you also have to check for OGF. 

That's true. No other choice.

> You have to
> store the setting for host_fc in hci_dev, because it can be different
> for separate controllers.

I agree. But how to provide the user with the facility to switch flow
control on/off? Like we modify security settings through hcid.conf.

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 11:28                             ` Mayank BATRA
@ 2006-08-21 13:34                               ` Marcel Holtmann
  2006-08-21 11:56                                 ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-21 13:34 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > you need to use the raw queue for sending this command. You can't use
> > the normal sent queue. We do the same for vendor specific commands.
> 
> I am now using the raw queue for sending this command. Can you have a look
> at the attached hcidump log to see if the behaviour is what we need?

please use "hcidump -X -V" and if the HCI shows a wrong behavior with
any of the new commands, please fix it.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 13:05                                     ` Mayank BATRA
@ 2006-08-21 14:00                                       ` Marcel Holtmann
  0 siblings, 0 replies; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-21 14:00 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > I added the two missing decodings to hcidump now.
> 
> I see the following five missing decodings in hcidump. Which ones did you
> miss out?
> 
> (1)< HCI Command: Host Buffer Size (0x03|0x0033) plen 7
>    0000: 00 04 ff 08 00 08 00                              .......
> 
> (2) > HCI Event: Command Complete (0x0e) plen 4
>     Host Buffer Size (0x03|0x0033) ncmd 1
>     0000: 00                                                .
> 
> (3) < HCI Command: Set Host Controller To Host Flow Control (0x03|0x0031)
> plen 1
>     0000: 01                                                .
> 
> (4) > HCI Event: Command Complete (0x0e) plen 4
>     Set Host Controller To Host Flow Control (0x03|0x0031) ncmd 1
>     0000: 00                                                .
> 
> (5) < HCI Command: Host Number of Completed Packets (0x03|0x0035) plen 5
>   0000: 01 28 00 01 00                                    .(...

the code in the CVS should now take care of all five.

> > You have to
> > store the setting for host_fc in hci_dev, because it can be different
> > for separate controllers.
> 
> I agree. But how to provide the user with the facility to switch flow
> control on/off? Like we modify security settings through hcid.conf.

As I said, the kernel can track HCI command and their results. So you
can actually detect inside the kernel if someone switched it on. See the
page and inquiry scan for an example.

After that you can simply add an additional command to hciconfig to set
the host flow control and everything is fine.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 11:56                                 ` Mayank BATRA
@ 2006-08-21 14:50                                   ` Marcel Holtmann
  2006-08-21 13:05                                     ` Mayank BATRA
  2006-08-21 21:10                                   ` Ulisses Furquim
  1 sibling, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-21 14:50 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > please use "hcidump -X -V" 
> 
> Here is the log with hcidump -X -V

I added the two missing decodings to hcidump now.

> > and if the HCI shows a wrong behavior with
> > any of the new commands, please fix it.
> 
> There is no wrong behaviour as such. Just that Host Number of completed
> packets is being sent as soon as we get ACL Data on any connection handle.
> 
> Do you think that the attached patch is decent enough for sending Host
> Number of completed packets to the raw queue? (or is there a better way than
> this?)

Need to check that. At least you also have to check for OGF. You have to
store the setting for host_fc in hci_dev, because it can be different
for separate controllers.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 11:56                                 ` Mayank BATRA
  2006-08-21 14:50                                   ` Marcel Holtmann
@ 2006-08-21 21:10                                   ` Ulisses Furquim
  2006-08-22  3:30                                     ` Mayank BATRA
  2006-08-22  5:42                                     ` Marcel Holtmann
  1 sibling, 2 replies; 41+ messages in thread
From: Ulisses Furquim @ 2006-08-21 21:10 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

On 8/21/06, Mayank BATRA <mayank.batra@st.com> wrote:
> There is no wrong behaviour as such. Just that Host Number of completed
> packets is being sent as soon as we get ACL Data on any connection handle.
>
> Do you think that the attached patch is decent enough for sending Host
> Number of completed packets to the raw queue? (or is there a better way than
> this?)

I've noticed you sent a diff against hci.h from bluez-libs and not the
one in the kernel, so please check that. One other thing is that you
have to be careful with endianess issues (please check your patch
against hci_core.c).

And I really think we should have a hci_send_cmd_raw() or something
like that instead of messing with hci_send_cmd(). Or maybe a new
function that creates a skb from scratch just to send the host number
of completed packets command? Marcel, what do you think?

Regards,

-- Ulisses

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 21:10                                   ` Ulisses Furquim
@ 2006-08-22  3:30                                     ` Mayank BATRA
  2006-08-22  5:39                                       ` Marcel Holtmann
  2006-08-22  5:42                                     ` Marcel Holtmann
  1 sibling, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-22  3:30 UTC (permalink / raw)
  To: 'BlueZ development'

[-- Attachment #1: Type: text/plain, Size: 676 bytes --]

Hi Ulisses,
 
> I've noticed you sent a diff against hci.h from bluez-libs and not the
> one in the kernel, so please check that.

Oops. My mistake. Here is the diff for the one in the kernel.

> One other thing is that you
> have to be careful with endianess issues (please check your patch
> against hci_core.c).

Which one do you mean in particular? 0x0008 or connection handle?

> And I really think we should have a hci_send_cmd_raw() or something
> like that instead of messing with hci_send_cmd(). Or maybe a new
> function that creates a skb from scratch just to send the host number
> of completed packets command? Marcel, what do you think?

Right.

Regards,
Mayank

[-- Attachment #2: hci.h.diff --]
[-- Type: application/octet-stream, Size: 1342 bytes --]

--- C:\Copy of hci.h	2006-08-22 08:54:31.000000000 +-0530
+++ C:\hci.h	2006-08-22 08:52:07.000000000 +-0530
@@ -266,20 +266,38 @@
 #define OCF_WRITE_CLASS_OF_DEV	0x0024
 typedef struct {
 	__u8 	dev_class[3];
 } __attribute__ ((packed)) write_class_of_dev_cp;
 #define WRITE_CLASS_OF_DEV_CP_SIZE 3
 
+#define OCF_SET_CONTROLLER_TO_HOST_FC   0x0031
+typedef struct {
+        uint8_t         flow_control_enable;
+} __attribute__ ((packed)) set_controller_to_host_fc_cp;
+#define SET_CONTROLLER_TO_HOST_FC_CP_SIZE       1
+typedef struct {
+        uint8_t         status;
+} __attribute__ ((packed)) set_controller_to_host_fc_rp;
+#define SET_CONTROLLER_TO_HOST_FC_RP_SIZE       1
+
 #define OCF_HOST_BUFFER_SIZE	0x0033
 typedef struct {
 	__u16 	acl_mtu;
 	__u8 	sco_mtu;
 	__u16 	acl_max_pkt;
 	__u16	sco_max_pkt;
 } __attribute__ ((packed)) host_buffer_size_cp;
 #define HOST_BUFFER_SIZE_CP_SIZE 7
+
+#define OCF_HOST_NUM_OF_COMPLETED_PACKETS       0x0035
+typedef struct {
+        uint8_t         num_of_handles;
+        uint16_t        handle;
+        uint16_t        host_num_of_completed_packets;
+} __attribute__ ((packed)) host_num_of_completed_packets_cp;
+#define OCF_HOST_NUM_OF_COMPLETED_PACKETS_CP_SIZE 5
 
 /* Link Control */
 #define OGF_LINK_CTL	0x01 
 #define OCF_CREATE_CONN		0x0005
 typedef struct {
 	bdaddr_t bdaddr;

[-- Attachment #3: Type: text/plain, Size: 373 bytes --]

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

[-- Attachment #4: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22  5:39                                       ` Marcel Holtmann
@ 2006-08-22  3:52                                         ` Mayank BATRA
  2006-08-22  5:54                                           ` Marcel Holtmann
  0 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-22  3:52 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Marcel,

> please follow the names, I just introduced for the libraray. 
> They don't
> have to match, but I prefer if they do. The structs for 
> setting the host
> to host controller flow control are also not needed. Only the 
> OCF value.

But actually, set controller to host flow control requires a parameter to
tell which flow control we want to set. ACL, SCO or both. So a uint8_t
parameter is required and hence the struct.

> And the number of completed packets struct is variable. Please compare
> the number of completed packets events.

But a variable sized host number of completed packets command is required if
we are sending number of completed packets for more than one connection
handle in the same command, which is not the case currently.

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22  3:30                                     ` Mayank BATRA
@ 2006-08-22  5:39                                       ` Marcel Holtmann
  2006-08-22  3:52                                         ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-22  5:39 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > I've noticed you sent a diff against hci.h from bluez-libs and not the
> > one in the kernel, so please check that.
> 
> Oops. My mistake. Here is the diff for the one in the kernel.

please follow the names, I just introduced for the libraray. They don't
have to match, but I prefer if they do. The structs for setting the host
to host controller flow control are also not needed. Only the OCF value.
And the number of completed packets struct is variable. Please compare
the number of completed packets events.

> > One other thing is that you
> > have to be careful with endianess issues (please check your patch
> > against hci_core.c).
> 
> Which one do you mean in particular? 0x0008 or connection handle?

Every parameter that is uint16 needs an endian conversation.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-21 21:10                                   ` Ulisses Furquim
  2006-08-22  3:30                                     ` Mayank BATRA
@ 2006-08-22  5:42                                     ` Marcel Holtmann
  1 sibling, 0 replies; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-22  5:42 UTC (permalink / raw)
  To: BlueZ development

Hi Ulisses,

> And I really think we should have a hci_send_cmd_raw() or something
> like that instead of messing with hci_send_cmd(). Or maybe a new
> function that creates a skb from scratch just to send the host number
> of completed packets command? Marcel, what do you think?

no additional function for only one call. We either make hci_send_cmd()
aware of the special case or we need to queue this command by hand. I
have to check the internals of the command flow before I can actually
tell you what's the best way. Haven't looked at that for quite some time
and don't know it from memory.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22  3:52                                         ` Mayank BATRA
@ 2006-08-22  5:54                                           ` Marcel Holtmann
  2006-08-22 20:47                                             ` Ulisses Furquim
  0 siblings, 1 reply; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-22  5:54 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > please follow the names, I just introduced for the libraray. 
> > They don't
> > have to match, but I prefer if they do. The structs for 
> > setting the host
> > to host controller flow control are also not needed. Only the 
> > OCF value.
> 
> But actually, set controller to host flow control requires a parameter to
> tell which flow control we want to set. ACL, SCO or both. So a uint8_t
> parameter is required and hence the struct.

we don't send it from the kernel, do we? And even if we do, please check
the HCI Write Scan Enable command.

> > And the number of completed packets struct is variable. Please compare
> > the number of completed packets events.
> 
> But a variable sized host number of completed packets command is required if
> we are sending number of completed packets for more than one connection
> handle in the same command, which is not the case currently.

Even if we don't do it at the moment, this doesn't mean that we mess up
the kernel with wrong structs.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22  5:54                                           ` Marcel Holtmann
@ 2006-08-22 20:47                                             ` Ulisses Furquim
  2006-08-23  3:54                                               ` Mayank BATRA
                                                                 ` (4 more replies)
  0 siblings, 5 replies; 41+ messages in thread
From: Ulisses Furquim @ 2006-08-22 20:47 UTC (permalink / raw)
  To: BlueZ development

[-- Attachment #1: Type: text/plain, Size: 805 bytes --]

Hi Marcel, Mayank,

how about something like the attached patch? I've used some of
Mayank's code and added some other parts. It's not complete and it's
only compile-tested yet.

I haven't done the interface to change the hci_dev->host_flow_ctl
parameter from user space and we're sending the host number of
completed packtes command after each packet (ACL or SCO, depending on
the host_flow_ctl value). We're gonna need counters on both hci_dev
and hci_conn structures to "ack" more than one packet and change
hci_send_host_num_comp_pkts().

I'm also still not sure when we should send the host number of
completed packets command. The specification says this command must be
sent after the buffers are freed on the host but I don't know if we
have to be strict about this. :-)

Best regards,

-- Ulisses

[-- Attachment #2: host-flow-ctl-v0.patch --]
[-- Type: text/x-patch, Size: 6086 bytes --]

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index b2bdb1a..0c5cd2c 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -184,6 +184,12 @@ #define HCI_LM_TRUSTED	0x0008
 #define HCI_LM_RELIABLE	0x0010
 #define HCI_LM_SECURE	0x0020
 
+/* Host flow control */
+#define HCI_HFC_NONE	0x00
+#define HCI_HFC_ACL	0x01
+#define HCI_HFC_SCO	0x02
+#define HCI_HFC_BOTH	0x03
+
 /* -----  HCI Commands ---- */
 /* OGF & OCF values */
 
@@ -286,6 +292,11 @@ struct hci_cp_write_voice_setting {
 	__le16   voice_setting;
 } __attribute__ ((packed));
 
+#define OCF_SET_HOST_FLOW_CTL	0x0031
+struct hci_cp_set_host_flow_ctl {
+	__u8     host_flow_ctl;
+} __attribute__ ((packed));
+
 #define OCF_HOST_BUFFER_SIZE	0x0033
 struct hci_cp_host_buffer_size {
 	__le16   acl_mtu;
@@ -294,6 +305,16 @@ struct hci_cp_host_buffer_size {
 	__le16   sco_max_pkt;
 } __attribute__ ((packed));
 
+#define OCF_HOST_NUM_COMP_PKTS	0x0035
+struct hci_cp_host_num_comp_pkts {
+	__u8     num_hndl;
+	/* variable length part */
+} __attribute__ ((packed));
+struct hci_cp_handle_num_comp_pkts {
+	__le16   handle;
+	__le16   num_comp_pkts;
+} __attribute__ ((packed));
+
 /* Link Control */
 #define OGF_LINK_CTL	0x01 
 #define OCF_CREATE_CONN		0x0005
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index d84855f..dca6797 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -82,6 +82,12 @@ struct hci_dev {
 	__u16		sniff_min_interval;
 	__u16		sniff_max_interval;
 
+	__u8		host_flow_ctl;
+	__u16		host_acl_mtu;
+	__u8		host_sco_mtu;
+	__u16		acl_max_pkt;
+	__u16		sco_max_pkt;
+
 	unsigned long	quirks;
 
 	atomic_t	cmd_cnt;
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 5ed4742..df91d82 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -209,17 +209,15 @@ static void hci_init_req(struct hci_dev 
 	/* Read Buffer Size (ACL mtu, max pkt, etc.) */
 	hci_send_cmd(hdev, OGF_INFO_PARAM, OCF_READ_BUFFER_SIZE, 0, NULL);
 
-#if 0
 	/* Host buffer size */
 	{
 		struct hci_cp_host_buffer_size cp;
-		cp.acl_mtu = __cpu_to_le16(HCI_MAX_ACL_SIZE);
-		cp.sco_mtu = HCI_MAX_SCO_SIZE;
-		cp.acl_max_pkt = __cpu_to_le16(0xffff);
-		cp.sco_max_pkt = __cpu_to_le16(0xffff);
+		cp.acl_mtu = __cpu_to_le16(hdev->host_acl_mtu);
+		cp.sco_mtu = hdev->host_sco_mtu;
+		cp.acl_max_pkt = __cpu_to_le16(hdev->acl_max_pkt);
+		cp.sco_max_pkt = __cpu_to_le16(hdev->sco_max_pkt);
 		hci_send_cmd(hdev, OGF_HOST_CTL, OCF_HOST_BUFFER_SIZE, sizeof(cp), &cp);
 	}
-#endif
 
 	/* Read BD Address */
 	hci_send_cmd(hdev, OGF_INFO_PARAM, OCF_READ_BD_ADDR, 0, NULL);
@@ -1047,6 +1045,46 @@ int hci_send_cmd(struct hci_dev *hdev, _
 	return 0;
 }
 
+static int hci_send_host_num_comp_pkts(struct hci_dev *hdev, __u16 handle)
+{
+	struct hci_cp_handle_num_comp_pkts *hnum;
+	struct hci_cp_host_num_comp_pkts *cp;
+	struct hci_command_hdr *hdr;
+	struct sk_buff *skb;
+	__u32 plen, len;
+
+	plen = sizeof(*cp) + sizeof(*hnum);
+	len = HCI_COMMAND_HDR_SIZE + plen;
+
+	skb = bt_skb_alloc(len, GFP_ATOMIC);
+	if (!skb) {
+		BT_ERR("%s can't allocate memory for HCI command", hdev->name);
+		return -ENOMEM;
+	}
+
+	hdr = (struct hci_command_hdr *)skb_put(skb, HCI_COMMAND_HDR_SIZE);
+	hdr->opcode = __cpu_to_le16(hci_opcode_pack(OGF_HOST_CTL,
+						    OCF_HOST_NUM_COMP_PKTS));
+	hdr->plen = plen;
+
+	cp = (struct hci_cp_host_num_comp_pkts *)skb_put(skb, sizeof(*cp));
+	hnum = (struct hci_cp_handle_num_comp_pkts *)skb_put(skb,
+							     sizeof(*hnum));
+
+	cp->num_hndl = 1;
+	hnum->handle = __cpu_to_le16(handle);
+	hnum->num_comp_pkts = __constant_cpu_to_le16(1);
+
+	BT_DBG("skb len %d", skb->len);
+
+	bt_cb(skb)->pkt_type = HCI_COMMAND_PKT;
+	skb->dev = (void *)hdev;
+	skb_queue_tail(&hdev->raw_q, skb);
+	hci_sched_tx(hdev);
+
+	return 0;
+}
+
 /* Get data from the previously sent command */
 void *hci_sent_cmd_data(struct hci_dev *hdev, __u16 ogf, __u16 ocf)
 {
@@ -1303,10 +1341,13 @@ static inline void hci_acldata_packet(st
 	hci_dev_lock(hdev);
 	conn = hci_conn_hash_lookup_handle(hdev, handle);
 	hci_dev_unlock(hdev);
-	
+
 	if (conn) {
 		register struct hci_proto *hp;
 
+		if (hdev->host_flow_ctl & HCI_HFC_ACL)
+			hci_send_host_num_comp_pkts(hdev, handle);
+
 		hci_conn_enter_active_mode(conn);
 
 		/* Send to upper protocol */
@@ -1344,6 +1385,9 @@ static inline void hci_scodata_packet(st
 	if (conn) {
 		register struct hci_proto *hp;
 
+		if (hdev->host_flow_ctl & HCI_HFC_SCO)
+			hci_send_host_num_comp_pkts(hdev, handle);
+
 		/* Send to upper protocol */
 		if ((hp = hci_proto[HCI_PROTO_SCO]) && hp->recv_scodata) {
 			hp->recv_scodata(conn, skb);
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 3896dab..78795ff 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -139,7 +139,7 @@ static void hci_cc_link_policy(struct hc
 /* Command Complete OGF HOST_CTL  */
 static void hci_cc_host_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb)
 {
-	__u8 status, param;
+	__u8 status, param, host_flow_ctl;
 	__u16 setting;
 	struct hci_rp_read_voice_setting *vs;
 	void *sent;
@@ -280,9 +280,33 @@ static void hci_cc_host_ctl(struct hci_d
 		hci_req_complete(hdev, status);
 		break;
 
+	case OCF_SET_HOST_FLOW_CTL:
+		sent = hci_sent_cmd_data(hdev, OGF_HOST_CTL,
+					 OCF_SET_HOST_FLOW_CTL);
+		if (!sent)
+			break;
+
+		status = *((__u8 *)skb->data);
+		host_flow_ctl = *((__u8 *)sent);
+
+		if (!status && hdev->host_flow_ctl != host_flow_ctl) {
+			hdev->host_flow_ctl = host_flow_ctl;
+			BT_DBG("%s: host flow ctl 0x%x", hdev->name,
+			       host_flow_ctl);
+		}
+		break;
+
 	case OCF_HOST_BUFFER_SIZE:
 		status = *((__u8 *) skb->data);
-		if (status) {
+		if (!status) {
+			struct hci_cp_set_host_flow_ctl cp;
+
+			if (!(cp.host_flow_ctl = hdev->host_flow_ctl))
+				break;
+
+			hci_send_cmd(hdev, OGF_HOST_CTL,
+				     OCF_SET_HOST_FLOW_CTL, sizeof(cp), &cp);
+		} else {
 			BT_DBG("%s OCF_BUFFER_SIZE failed %d", hdev->name, status);
 			hci_req_complete(hdev, status);
 		}

[-- Attachment #3: Type: text/plain, Size: 373 bytes --]

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

[-- Attachment #4: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22 20:47                                             ` Ulisses Furquim
@ 2006-08-23  3:54                                               ` Mayank BATRA
  2006-08-23  5:48                                               ` Mayank BATRA
                                                                 ` (3 subsequent siblings)
  4 siblings, 0 replies; 41+ messages in thread
From: Mayank BATRA @ 2006-08-23  3:54 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Ulisses,

> how about something like the attached patch? I've used some of
> Mayank's code and added some other parts. It's not complete and it's
> only compile-tested yet.

I'll try this today.

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22 20:47                                             ` Ulisses Furquim
  2006-08-23  3:54                                               ` Mayank BATRA
@ 2006-08-23  5:48                                               ` Mayank BATRA
  2006-08-23 13:06                                                 ` Ulisses Furquim
  2006-08-23  8:03                                               ` Mayank BATRA
                                                                 ` (2 subsequent siblings)
  4 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-23  5:48 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Ulisses,

> how about something like the attached patch? I've used some of
> Mayank's code and added some other parts. It's not complete and it's
> only compile-tested yet.

 	case OCF_HOST_BUFFER_SIZE:
 		status =3D *((__u8 *) skb->data);
-		if (status) {
+		if (!status) {
+			struct hci_cp_set_host_flow_ctl cp;
+
+			if (!(cp.host_flow_ctl =3D hdev->host_flow_ctl))
+				break;
+
+			hci_send_cmd(hdev, OGF_HOST_CTL,
+				     OCF_SET_HOST_FLOW_CTL, sizeof(cp),
&cp);
+		} else {
 			BT_DBG("%s OCF_BUFFER_SIZE failed %d", hdev->name,
status);
 			hci_req_complete(hdev, status);
 		}

If status =3D 0 it means that the command was success. But in the patch that
you sent, it=92s the other way round. Is it a mistake?

Regards,
Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easi=
er
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat=3D1=
21642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22 20:47                                             ` Ulisses Furquim
  2006-08-23  3:54                                               ` Mayank BATRA
  2006-08-23  5:48                                               ` Mayank BATRA
@ 2006-08-23  8:03                                               ` Mayank BATRA
  2006-08-23 14:28                                                 ` Marcel Holtmann
  2006-08-23 18:44                                               ` Steven Singer
  2006-10-31 13:25                                               ` Mayank BATRA
  4 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-08-23  8:03 UTC (permalink / raw)
  To: 'BlueZ development'

[-- Attachment #1: Type: text/plain, Size: 334 bytes --]

Hi Ulisses, Marcel,

> how about something like the attached patch? I've used some of
> Mayank's code and added some other parts. It's not complete and it's
> only compile-tested yet.

I think we will require the attached patch for setting the various
parameters of hci_dev structure from hciconfig (through ioctls).

Regards,
Mayank

[-- Attachment #2: hci.h.diff --]
[-- Type: application/octet-stream, Size: 700 bytes --]

--- C:\Diffs\Copy of hci.h	2003-03-14 03:53:14.000000000 +-0530
+++ C:\Diffs\hci.h	2006-08-23 12:46:24.000000000 +-0530
@@ -82,12 +82,16 @@
 #define HCISETENCRYPT   _IOW('H', 223, int)
 #define HCISETPTYPE     _IOW('H', 224, int)
 #define HCISETLINKPOL   _IOW('H', 225, int)
 #define HCISETLINKMODE  _IOW('H', 226, int)
 #define HCISETACLMTU    _IOW('H', 227, int)
 #define HCISETSCOMTU    _IOW('H', 228, int)
+#define HCISETHOSTFC    _IOW('H', 229, int)
+#define HCISETHOSTACLMTU    _IOW('H', 230, int)
+#define HCISETHOSTSCOMTU    _IOW('H', 231, int)
+
 
 #define HCIINQUIRY      _IOR('H', 240, int)
 
 /* HCI timeouts */
 #define HCI_CONN_TIMEOUT 	(HZ * 40)
 #define HCI_DISCONN_TIMEOUT 	(HZ * 2)

[-- Attachment #3: hci_core.c.diff --]
[-- Type: application/octet-stream, Size: 729 bytes --]

--- C:\Diffs\Copy of hci_core.c	2003-03-14 03:53:16.000000000 +-0530
+++ C:\Diffs\hci_core.c	2006-08-23 12:40:20.000000000 +-0530
@@ -691,12 +691,26 @@
 		break;
 
 	case HCISETSCOMTU:
 		hdev->sco_mtu  = *((__u16 *)&dr.dev_opt + 1);
 		hdev->sco_pkts = *((__u16 *)&dr.dev_opt + 0);
 		break;
+		
+	case HCISETHOSTFC:
+		hdev->host_flow_ctl = (__u8) dr.dev_opt;
+		break;
+		
+	case HCISETHOSTACLMTU:
+		hdev->host_acl_mtu  = *((__u16 *)&dr.dev_opt + 1);
+		hdev->acl_max_pkts = *((__u16 *)&dr.dev_opt + 0);
+		break;
+
+	case HCISETHOSTSCOMTU:
+		hdev->host_sco_mtu  = *((__u16 *)&dr.dev_opt + 1);
+		hdev->sco_max_pkts = *((__u16 *)&dr.dev_opt + 0);
+		break;
 
 	default:
 		err = -EINVAL;
 		break;
 	}	
 	hci_dev_put(hdev);

[-- Attachment #4: hci_sock.c.diff --]
[-- Type: application/octet-stream, Size: 486 bytes --]

--- C:\Diffs\Copy of hci_sock.c	2006-08-23 12:32:33.000000000 +-0530
+++ C:\Diffs\hci_sock.c	2006-08-23 12:34:30.000000000 +-0530
@@ -233,12 +233,15 @@
 	case HCISETENCRYPT:
 	case HCISETPTYPE:
 	case HCISETLINKPOL:
 	case HCISETLINKMODE:
 	case HCISETACLMTU:
 	case HCISETSCOMTU:
+	case HCISETHOSTFC:
+	case HCISETHOSTACLMTU:
+	case HCISETHOSTSCOMTU:
 		if (!capable(CAP_NET_ADMIN))
 			return -EACCES;
 		return hci_dev_cmd(cmd, arg);
 
 	case HCIINQUIRY:
 		return hci_inquiry(arg);

[-- Attachment #5: hciconfig.c.diff --]
[-- Type: application/octet-stream, Size: 3099 bytes --]

--- C:\Diffs\Copy of hciconfig.c	2006-08-23 12:46:46.000000000 +-0530
+++ C:\Diffs\hciconfig.c	2006-08-23 13:28:57.000000000 +-0530
@@ -1298,12 +1298,81 @@
 
 		print_dev_hdr(&di);
 		printf("\tAFH mode: %s\n", mode == 1 ? "Enabled" : "Disabled");
 	}
 }
 
+static void cmd_hostfc(int ctl, int hdev, char *opt)
+{
+	struct hci_dev_req dr;
+
+	dr.dev_id = hdev;
+	if (!strcmp(opt, "hostfcoff")) {
+		dr.dev_opt = HCI_HFC_NONE;
+	}
+	else if(!strcmp(opt, "hostfcacl")) {
+		dr.dev_opt = HCI_HFC_ACL;
+	}
+	else if(!strcmp(opt, "hostfcsco")) {
+		dr.dev_opt = HCI_HFC_SCO;
+	}
+	else if(!strcmp(opt, "hostfcboth")) {
+		dr.dev_opt = HCI_HFC_BOTH;
+	}
+	else {
+		printf("Invalid option for setting host flow control\n");
+		exit(1);
+	}
+
+	if (ioctl(ctl, HCISETHOSTFC, (unsigned long) &dr) < 0) {
+		fprintf(stderr, "Can't set host flow control on hci%d: %s (%d)\n",
+						hdev, strerror(errno), errno);
+		exit(1);
+	}
+}
+
+static void cmd_hostaclmtu(int ctl, int hdev, char *opt)
+{
+	struct hci_dev_req dr = { dev_id: hdev };
+	uint16_t mtu, mpkt;
+
+	if (!opt)
+		return;
+
+	if (sscanf(opt, "%4hu:%4hu", &mtu, &mpkt) != 2)
+		return;
+
+	dr.dev_opt = htobl(htobs(mpkt) | (htobs(mtu) << 16));
+
+	if (ioctl(ctl, HCISETHOSTACLMTU, (unsigned long) &dr) < 0) {
+		fprintf(stderr, "Can't set HOST ACL mtu on hci%d: %s(%d)\n",
+						hdev, strerror(errno), errno);
+		exit(1);
+	}
+}
+
+static void cmd_hostscomtu(int ctl, int hdev, char *opt)
+{
+	struct hci_dev_req dr = { dev_id: hdev };
+	uint16_t mtu, mpkt;
+
+	if (!opt)
+		return;
+
+	if (sscanf(opt, "%4hu:%4hu", &mtu, &mpkt) != 2)
+		return;
+
+	dr.dev_opt = htobl(htobs(mpkt) | (htobs(mtu) << 16));
+
+	if (ioctl(ctl, HCISETHOSTSCOMTU, (unsigned long) &dr) < 0) {
+		fprintf(stderr, "Can't set HOST SCO mtu on hci%d: %s (%d)\n",
+						hdev, strerror(errno), errno);
+		exit(1);
+	}
+}
+
 static void print_rev_ericsson(int dd)
 {
 	struct hci_request rq;
 	unsigned char buf[102];
 
 	memset(&rq, 0, sizeof(rq));
@@ -1511,12 +1580,18 @@
 	{ "putkey",	cmd_putkey,	"<bdaddr>",	"Store link key on the device" },
 	{ "delkey",	cmd_delkey,	"<bdaddr>",	"Delete link key from the device" },
 	{ "commands",	cmd_commands,	0,		"Display supported commands" },
 	{ "features",	cmd_features,	0,		"Display device features" },
 	{ "version",	cmd_version,	0,		"Display version information" },
 	{ "revision",	cmd_revision,	0,		"Display revision information" },
+	{ "hostfcacl",	cmd_hostfc,	0,		"Enable host flow control for ACL data packets only"},
+	{ "hostfcsco",	cmd_hostfc,	0,		"Enable host flow control for SCO data packets only"},
+	{ "hostfcboth",	cmd_hostfc,	0,		"Enable host flow control for both ACL and SCOdata packets"},
+	{ "hostfcoff",	cmd_hostfc,	0,		"Disable Host Flow Control"},
+	{ "hostaclmtu",	cmd_hostaclmtu,	"<mtu:pkt>",	"Set host ACL MTU and host number of packets" },
+	{ "hostscomtu",	cmd_hostscomtu,	"<mtu:pkt>",	"Set host SCO MTU and host number of packets" },
 	{ NULL, NULL, 0 }
 };
 
 static void usage(void)
 {
 	int i;

[-- Attachment #6: Type: text/plain, Size: 373 bytes --]

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

[-- Attachment #7: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-23  5:48                                               ` Mayank BATRA
@ 2006-08-23 13:06                                                 ` Ulisses Furquim
  0 siblings, 0 replies; 41+ messages in thread
From: Ulisses Furquim @ 2006-08-23 13:06 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

On 8/23/06, Mayank BATRA <mayank.batra@st.com> wrote:
>         case OCF_HOST_BUFFER_SIZE:
>                 status = *((__u8 *) skb->data);
> -               if (status) {
> +               if (!status) {
> +                       struct hci_cp_set_host_flow_ctl cp;
> +
> +                       if (!(cp.host_flow_ctl = hdev->host_flow_ctl))
> +                               break;
> +
> +                       hci_send_cmd(hdev, OGF_HOST_CTL,
> +                                    OCF_SET_HOST_FLOW_CTL, sizeof(cp),
> &cp);
> +               } else {
>                         BT_DBG("%s OCF_BUFFER_SIZE failed %d", hdev->name,
> status);
>                         hci_req_complete(hdev, status);
>                 }
>
> If status = 0 it means that the command was success. But in the patch that
> you sent, it's the other way round. Is it a mistake?

I think it's right, take a look at the patch again (there's a !status there).

Regards,

-- Ulisses

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-23  8:03                                               ` Mayank BATRA
@ 2006-08-23 14:28                                                 ` Marcel Holtmann
  0 siblings, 0 replies; 41+ messages in thread
From: Marcel Holtmann @ 2006-08-23 14:28 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

> > how about something like the attached patch? I've used some of
> > Mayank's code and added some other parts. It's not complete and it's
> > only compile-tested yet.
> 
> I think we will require the attached patch for setting the various
> parameters of hci_dev structure from hciconfig (through ioctls).

no. The kernel will find out what host flow control mode to use when
someone sends the HCI command. And hciconfig should only send this
command.

Variable buffer size are not making sense in my opinion. We know what
can handle and we should always accept the maximum. Let the chip decide
the actual used buffer size.

Regards

Marcel



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22 20:47                                             ` Ulisses Furquim
                                                                 ` (2 preceding siblings ...)
  2006-08-23  8:03                                               ` Mayank BATRA
@ 2006-08-23 18:44                                               ` Steven Singer
  2006-08-23 20:14                                                 ` Ulisses Furquim
  2006-10-31 13:25                                               ` Mayank BATRA
  4 siblings, 1 reply; 41+ messages in thread
From: Steven Singer @ 2006-08-23 18:44 UTC (permalink / raw)
  To: BlueZ development

Ulisses Furquim wrote:
> I'm also still not sure when we should send the host number of
> completed packets command. The specification says this command must be
> sent after the buffers are freed on the host but I don't know if we
> have to be strict about this. :-)

Sending back the command gives a commitment to the chip that you will
be able to take another maximum size block of data. Sending the command
before this is true will lead to a disaster.

So, if you have only a finite amount of memory to hold data coming from
the chip, you need to have at least enough space in that memory to hold
the maximum amount of data the chip could send you at that point.

You need to worry about this most on resource limited systems. In
which case, you almost certainly want to preallocate the memory for
the receive so that you can guarantee that it will be available when
the packet arrives.

If you preallocate a static buffer then as soon as the data is passed
out of the buffer the space being held in that buffer by that message
can be freed. This is the earliest the command could be issued. This
works nicely with ring buffers and is the scenario the spec is thinking
of.

It's then a system problem to make sure that you can't take messages
out of that buffer and queue them for their recipients so fast that you
deplete the memory of the entire system. In this case you can put in
some flow control mechanism internally in your system and take messages
out of the static buffer only when flow control allows.

With a dynamic allocation strategy, you should really be sending back
the command once you've allocated enough memory to receive the next
packet from the chip. Again, this could involve a flow control interlock
with the rest of the system.

One strategy for flow control is for the final consumer of the message
to inform you that the message has been processed and at that point you
could allocate memory to hold a new from chip message and send the
command. Alternatively, you could put flow control between each layer of
the stack so that the stop indication gradually flows back from a
stalled layer until the host stops issuing flow control tokens to the
controller.

Implementing host controller to host flow control without also
implementing some flow control mechanism through the layers of your
stack (if necessary, all the way to the application) just pushes
any memory exhaustion issues to other points in the system.

On a big system (with multiple megabytes of memory free) this may not
be a significant issue. On a small embedded system where you need to
track to the kilobyte level, it can be.

Apart from avoiding a crash, the other issue of interest is bandwidth.
You want to make sure that the link from the controller never stalls.
To do this, you must make sure that the controller never runs out of
flow control tokens, that is, you want to return them in advance of
the controller running out. How much in advance depends on the
reaction time of the controller. I would have thought that provided
you're returning tokens, let's say, at least 5 ms and at least 2 tokens
before the controller will run out then it shouldn't stall. However,
if you can afford it, a much larger safety margin would be nicer.

It can be more efficient on bandwidth limited host transports (UART) to
return multiple tokens in a single command. This suggests that you
shouldn't queue up lots of commands each to free up one token. Ideally
you'd note that you needed to send a token, but not actually fill in the
command payload until the host transport was free to send the command. If
the transport were immediately free then you'd send just a single token
but if the transport were busy (say, sending a large data packet to the
controller) then you might be able to send multiple tokens in a single
command once the transport freed up.

One thing you may want to watch is whether the controller can track all
the tokens you give it. If it can't then it may be able to use just a
subset. I which case, if you're waiting for the number of outstanding
tokens to hit a watermark, you may find that flow control stops long
before that point because the controller has run out of resources to
track outstanding packets.

These are all advanced techniques. For the moment, it's probably
easiest just to send tokens as soon as they become available. Worry
about optimising it once it's working properly.

Don't forget that when a disconnection occurs, all outstanding
flow control tokens for that handle are returned implicitly.

	- Steven
-- 


To access the latest news from CSR copy this link into a web browser:  http://www.csr.com/email_sig.php

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-23 18:44                                               ` Steven Singer
@ 2006-08-23 20:14                                                 ` Ulisses Furquim
  0 siblings, 0 replies; 41+ messages in thread
From: Ulisses Furquim @ 2006-08-23 20:14 UTC (permalink / raw)
  To: BlueZ development

Hi Steven,

On 8/23/06, Steven Singer <steven.singer@csr.com> wrote:
> Sending back the command gives a commitment to the chip that you will
> be able to take another maximum size block of data. Sending the command
> before this is true will lead to a disaster.

Yes, you're right. The problem seems to be knowing when this
commitment can be given if we don't have a preallocated static buffer
or some dynamic allocation strategy implemented.

[ snip ]

> These are all advanced techniques. For the moment, it's probably
> easiest just to send tokens as soon as they become available. Worry
> about optimising it once it's working properly.

Thanks for pointing all that out. :-) We're trying to make it work but
we really have to know when we can be sure a flow control token became
avaialble.

> Don't forget that when a disconnection occurs, all outstanding
> flow control tokens for that handle are returned implicitly.

Right, I won't forget, thanks.

Best regards,

-- Ulisses

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-08-22 20:47                                             ` Ulisses Furquim
                                                                 ` (3 preceding siblings ...)
  2006-08-23 18:44                                               ` Steven Singer
@ 2006-10-31 13:25                                               ` Mayank BATRA
  2006-10-31 14:30                                                 ` Ulisses Furquim
  4 siblings, 1 reply; 41+ messages in thread
From: Mayank BATRA @ 2006-10-31 13:25 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Marcel, Ulisses,

I am wondering whether this code(i.e. controller to host flow control) has
been included in one of the -mh kernel patch.
Can you please confirm?

Best Regards,
Mayank


Ulisses Furquim wrote:

> 
> Hi Marcel, Mayank,
> 
> how about something like the attached patch? I've used some of
> Mayank's code and added some other parts. It's not complete and it's
> only compile-tested yet.
> 
> I haven't done the interface to change the hci_dev->host_flow_ctl
> parameter from user space and we're sending the host number of
> completed packtes command after each packet (ACL or SCO, depending on
> the host_flow_ctl value). We're gonna need counters on both hci_dev
> and hci_conn structures to "ack" more than one packet and change
> hci_send_host_num_comp_pkts().
> 
> I'm also still not sure when we should send the host number of
> completed packets command. The specification says this command must be
> sent after the buffers are freed on the host but I don't know if we
> have to be strict about this. :-)
> 
> Best regards,
> 
> -- Ulisses
> 


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-10-31 13:25                                               ` Mayank BATRA
@ 2006-10-31 14:30                                                 ` Ulisses Furquim
  2006-11-01  4:09                                                   ` Mayank BATRA
  0 siblings, 1 reply; 41+ messages in thread
From: Ulisses Furquim @ 2006-10-31 14:30 UTC (permalink / raw)
  To: BlueZ development

Hi Mayank,

On 10/31/06, Mayank BATRA <mayank.batra@st.com> wrote:
> I am wondering whether this code(i.e. controller to host flow control) has
> been included in one of the -mh kernel patch.
> Can you please confirm?

I don't think so. You're probably confusing it with the L2CAP
retransmission and flow control patch that is included in the latest
-mh patches.

Regards,

-- Ulisses

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

* Re: [Bluez-devel] Host Controller to Host Flow Control
  2006-10-31 14:30                                                 ` Ulisses Furquim
@ 2006-11-01  4:09                                                   ` Mayank BATRA
  0 siblings, 0 replies; 41+ messages in thread
From: Mayank BATRA @ 2006-11-01  4:09 UTC (permalink / raw)
  To: 'BlueZ development'

Hi Ulisses,

> > I am wondering whether this code(i.e. controller to host 
> >flow control) has
> > been included in one of the -mh kernel patch.
> > Can you please confirm?
> 
> I don't think so. You're probably confusing it with the L2CAP
> retransmission and flow control patch that is included in the latest
> -mh patches.

Of course I am not confused between the two.
Just that I wanted to know whether the Host Flow control patch is inside a
-mh patch.
So I think it is not there.

Best Regards,

Mayank


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

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

end of thread, other threads:[~2006-11-01  4:09 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-08  3:56 [Bluez-devel] Host Controller to Host Flow Control Mayank BATRA
2006-08-08 12:52 ` Ulisses Furquim
2006-08-09 21:58   ` Marcel Holtmann
2006-08-10  4:33     ` Mayank BATRA
2006-08-10  8:35   ` Mayank BATRA
2006-08-10 13:00     ` Ulisses Furquim
2006-08-10 13:43       ` Mayank BATRA
2006-08-14 15:24       ` Mayank BATRA
2006-08-14 20:26         ` Marcel Holtmann
2006-08-17  4:43           ` Mayank BATRA
2006-08-17 12:59             ` Marcel Holtmann
2006-08-17 11:20               ` Mayank BATRA
2006-08-17 13:45                 ` Marcel Holtmann
2006-08-18  9:54                   ` Mayank BATRA
2006-08-18 14:04                     ` Marcel Holtmann
2006-08-18 12:26                       ` Mayank BATRA
2006-08-21  9:41                         ` Mayank BATRA
2006-08-21 11:51                           ` Marcel Holtmann
2006-08-21 11:28                             ` Mayank BATRA
2006-08-21 13:34                               ` Marcel Holtmann
2006-08-21 11:56                                 ` Mayank BATRA
2006-08-21 14:50                                   ` Marcel Holtmann
2006-08-21 13:05                                     ` Mayank BATRA
2006-08-21 14:00                                       ` Marcel Holtmann
2006-08-21 21:10                                   ` Ulisses Furquim
2006-08-22  3:30                                     ` Mayank BATRA
2006-08-22  5:39                                       ` Marcel Holtmann
2006-08-22  3:52                                         ` Mayank BATRA
2006-08-22  5:54                                           ` Marcel Holtmann
2006-08-22 20:47                                             ` Ulisses Furquim
2006-08-23  3:54                                               ` Mayank BATRA
2006-08-23  5:48                                               ` Mayank BATRA
2006-08-23 13:06                                                 ` Ulisses Furquim
2006-08-23  8:03                                               ` Mayank BATRA
2006-08-23 14:28                                                 ` Marcel Holtmann
2006-08-23 18:44                                               ` Steven Singer
2006-08-23 20:14                                                 ` Ulisses Furquim
2006-10-31 13:25                                               ` Mayank BATRA
2006-10-31 14:30                                                 ` Ulisses Furquim
2006-11-01  4:09                                                   ` Mayank BATRA
2006-08-22  5:42                                     ` Marcel Holtmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).