2013-02-18 07:27:33

by Randy Yates

[permalink] [raw]
Subject: mgmt-api.txt

Almost all text files in doc/ are consistently-documented dbus APIs,
specifying service, interface, and object path.

However, doc/mgmt-api.txt is in a completely different format. It states
something about "Packet Structures" but I have no idea which packets the
document is referring to.

Can someone explain how to use this API? We have a requirement to set
some of these properties, such as discoverability and link level
security.
--
Randy Yates
Digital Signal Labs
http://www.digitalsignallabs.com


2013-02-18 16:00:43

by Randy Yates

[permalink] [raw]
Subject: Re: mgmt-api.txt

Thanks much, Johan. That clarifies things nicely.

--Randy

Johan Hedberg <[email protected]> writes:

> Hi,
>
> On Mon, Feb 18, 2013, Johan Hedberg wrote:
>> On Mon, Feb 18, 2013, Randy Yates wrote:
>> > Almost all text files in doc/ are consistently-documented dbus APIs,
>> > specifying service, interface, and object path.
>> >
>> > However, doc/mgmt-api.txt is in a completely different format. It states
>> > something about "Packet Structures" but I have no idea which packets the
>> > document is referring to.
>> >
>> > Can someone explain how to use this API? We have a requirement to set
>> > some of these properties, such as discoverability and link level
>> > security.
>>
>> This is just a special socket type that kernel versions from 3.4 onwards
>> provide. See e.g. the mgmt_new_default() function in src/shared/mgmt.c
>> for an example of creating a mgmt socket that you can use to communicate
>> using the protocol described in mgmt-api.txt. There are also several
>> tools in the source tree that use mgmt sockets, e.g. tools/btmgmt
>> client/bluetoothctl and monitor/btmon. Looking at the source code for
>> those tools may also be helpful.
>
> Minor mistake there: bluetoothctl doesn't use mgmt sockets (it uses just
> the D-Bus interface). I also went ahead and pushed a description of how
> to create mgmt sockets to mgmt-api.txt since this was a quite obvious
> omission in the file. Another file you'll probably find useful is
> lib/mgmt.h which has structs and numerical definitions for the mgmt
> protocol.
>
> Johan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
Randy Yates
Digital Signal Labs
http://www.digitalsignallabs.com

2013-02-18 08:58:06

by Johan Hedberg

[permalink] [raw]
Subject: Re: mgmt-api.txt

Hi,

On Mon, Feb 18, 2013, Johan Hedberg wrote:
> On Mon, Feb 18, 2013, Randy Yates wrote:
> > Almost all text files in doc/ are consistently-documented dbus APIs,
> > specifying service, interface, and object path.
> >
> > However, doc/mgmt-api.txt is in a completely different format. It states
> > something about "Packet Structures" but I have no idea which packets the
> > document is referring to.
> >
> > Can someone explain how to use this API? We have a requirement to set
> > some of these properties, such as discoverability and link level
> > security.
>
> This is just a special socket type that kernel versions from 3.4 onwards
> provide. See e.g. the mgmt_new_default() function in src/shared/mgmt.c
> for an example of creating a mgmt socket that you can use to communicate
> using the protocol described in mgmt-api.txt. There are also several
> tools in the source tree that use mgmt sockets, e.g. tools/btmgmt
> client/bluetoothctl and monitor/btmon. Looking at the source code for
> those tools may also be helpful.

Minor mistake there: bluetoothctl doesn't use mgmt sockets (it uses just
the D-Bus interface). I also went ahead and pushed a description of how
to create mgmt sockets to mgmt-api.txt since this was a quite obvious
omission in the file. Another file you'll probably find useful is
lib/mgmt.h which has structs and numerical definitions for the mgmt
protocol.

Johan

2013-02-18 08:12:21

by Johan Hedberg

[permalink] [raw]
Subject: Re: mgmt-api.txt

Hi Randy,

On Mon, Feb 18, 2013, Randy Yates wrote:
> Almost all text files in doc/ are consistently-documented dbus APIs,
> specifying service, interface, and object path.
>
> However, doc/mgmt-api.txt is in a completely different format. It states
> something about "Packet Structures" but I have no idea which packets the
> document is referring to.
>
> Can someone explain how to use this API? We have a requirement to set
> some of these properties, such as discoverability and link level
> security.

This is just a special socket type that kernel versions from 3.4 onwards
provide. See e.g. the mgmt_new_default() function in src/shared/mgmt.c
for an example of creating a mgmt socket that you can use to communicate
using the protocol described in mgmt-api.txt. There are also several
tools in the source tree that use mgmt sockets, e.g. tools/btmgmt
client/bluetoothctl and monitor/btmon. Looking at the source code for
those tools may also be helpful.

Johan