2010-04-13 20:56:41

by Pavan Savoy

[permalink] [raw]
Subject: l2cap connection id in user-space

Is there a possibility as of now for me to extract the l2cap connection ID into my application ?

I require 2 sets of information about an L2CAP connection in my bluetooth application, I require the connection ID on connection to a remote headset/sink, and also the maximum packet size for that connection (which I think is the MTU, I can get via the getsockopt).

please respond.

Send free SMS to your Friends on Mobile from your Yahoo! Messenger. Download Now! http://messenger.yahoo.com/download.php


2010-04-14 05:51:10

by Gustavo Padovan

[permalink] [raw]
Subject: Re: l2cap connection id in user-space

Hi Pavan,

* Marcel Holtmann <[email protected]> [2010-04-13 17:59:32 -0700]:

> Hi Pavan,
>
> > Is there a possibility as of now for me to extract the l2cap connection ID into my application ?
> >
> > I require 2 sets of information about an L2CAP connection in my bluetooth application, I require the connection ID on connection to a remote headset/sink, and also the maximum packet size for that connection (which I think is the MTU, I can get via the getsockopt).
>
> you need a recent kernel and then getsockname() and getpeername() will
> give you the SCID and DCID.

Sorry for the wrong info, I didn't know about that calls inside L2CAP.
;)

--
Gustavo F. Padovan
http://padovan.org

2010-04-14 00:59:32

by Marcel Holtmann

[permalink] [raw]
Subject: Re: l2cap connection id in user-space

Hi Pavan,

> Is there a possibility as of now for me to extract the l2cap connection ID into my application ?
>
> I require 2 sets of information about an L2CAP connection in my bluetooth application, I require the connection ID on connection to a remote headset/sink, and also the maximum packet size for that connection (which I think is the MTU, I can get via the getsockopt).

you need a recent kernel and then getsockname() and getpeername() will
give you the SCID and DCID.

Regards

Marcel



2010-04-13 21:39:38

by Gustavo Padovan

[permalink] [raw]
Subject: Re: l2cap connection id in user-space

Hi Pavan,

* Pavan Savoy <[email protected]> [2010-04-14 02:54:00 +0530]:

>
> --- On Wed, 14/4/10, Gustavo F. Padovan <[email protected]> wrote:
>
> > From: Gustavo F. Padovan <[email protected]>
> > Subject: Re: l2cap connection id in user-space
> > To: "Pavan Savoy" <[email protected]>
> > Cc: [email protected], [email protected]
> > Date: Wednesday, 14 April, 2010, 2:49 AM
> > Hi Pavan,
> >
> > * Pavan Savoy <[email protected]>
> > [2010-04-14 02:26:41 +0530]:
> >
> > > Is there a possibility as of now for me to extract the
> > l2cap connection ID into my application ?
> >
> > bluez-hcidump does that. Look to its source code to learn
> > how.
>
> Yeah, correct, it does.
> However for that wouldn't I have to set filter for all ACL (or L2CAP) packets to even start receiving ACL (or L2CAP) packets ?
> strip off the l2cap_hdr and then get the channel ID from it.
>
> I was more or less looking to add in 1 more getsockopt option to specifically request for the l2cap_hdr ? (like the imtu/omtu which happens currently).
> Wouldn't this be the right way ?

No, we do not want such info on getsockopt. If you do that you'll have
to mantain it by yourself, which is not a good idea. The cid is L2CAP
specific, upper layers should not care about it.

>
> > >
> > > I require 2 sets of information about an L2CAP
> > connection in my bluetooth application, I require the
> > connection ID on connection to a remote headset/sink, and
> > also the maximum packet size for that connection (which I
> > think is the MTU, I can get via the getsockopt).
> > >
> >
--
Gustavo F. Padovan
http://padovan.org

2010-04-13 21:24:00

by Pavan Savoy

[permalink] [raw]
Subject: Re: l2cap connection id in user-space


--- On Wed, 14/4/10, Gustavo F. Padovan <[email protected]> wrote:

> From: Gustavo F. Padovan <[email protected]>
> Subject: Re: l2cap connection id in user-space
> To: "Pavan Savoy" <[email protected]>
> Cc: [email protected], [email protected]
> Date: Wednesday, 14 April, 2010, 2:49 AM
> Hi Pavan,
>
> * Pavan Savoy <[email protected]>
> [2010-04-14 02:26:41 +0530]:
>
> > Is there a possibility as of now for me to extract the
> l2cap connection ID into my application ?
>
> bluez-hcidump does that. Look to its source code to learn
> how.

Yeah, correct, it does.
However for that wouldn't I have to set filter for all ACL (or L2CAP) packets to even start receiving ACL (or L2CAP) packets ?
strip off the l2cap_hdr and then get the channel ID from it.

I was more or less looking to add in 1 more getsockopt option to specifically request for the l2cap_hdr ? (like the imtu/omtu which happens currently).
Wouldn't this be the right way ?

> >
> > I require 2 sets of information about an L2CAP
> connection in my bluetooth application, I require the
> connection ID on connection to a remote headset/sink, and
> also the maximum packet size for that connection (which I
> think is the MTU, I can get via the getsockopt).
> >
>
> --
> Gustavo F. Padovan
> http://padovan.org
>

Send free SMS to your Friends on Mobile from your Yahoo! Messenger. Download Now! http://messenger.yahoo.com/download.php

2010-04-13 21:19:13

by Gustavo Padovan

[permalink] [raw]
Subject: Re: l2cap connection id in user-space

Hi Pavan,

* Pavan Savoy <[email protected]> [2010-04-14 02:26:41 +0530]:

> Is there a possibility as of now for me to extract the l2cap connection ID into my application ?

bluez-hcidump does that. Look to its source code to learn how.

>
> I require 2 sets of information about an L2CAP connection in my bluetooth application, I require the connection ID on connection to a remote headset/sink, and also the maximum packet size for that connection (which I think is the MTU, I can get via the getsockopt).
>

--
Gustavo F. Padovan
http://padovan.org