2006-08-31 13:59:27

by Marco Pracucci

[permalink] [raw]
Subject: [Bluez-devel] ioctl: setting link mode and link policy

Hi list,

I have some problem when I try to set link mode and link policy using
ioctl() system call. In particular, when I set link policy or link mode,
it seems that nothing happens.

-----------------
int deviceDescriptor;
struct hci_dev_req request;

// Open device
deviceDescriptor = hci_open_dev(deviceID);
[...]

// Set link mode
memset(&request, 0, sizeof(request));
request.dev_id = deviceID;
request.dev_opt = HCI_LM_MASTER;
ioctl(deviceDescriptor, HCISETLINKMODE, (unsigned long) &request);
[...]

// Set link policy
memset(&request, 0, sizeof(request));
request.dev_id = deviceID;
request.dev_opt = policy;
ioctl(deviceDescriptor, HCISETLINKPOL, (unsigned long) &request);
[...]
-----------------

ioctl() system calls do not return any error, but when I check the link
mode and link policy with "hciconfig -a" nothing has changed. Moreover,
I have tried to debug it with "hcidump -V" but no related hci commands
are reported.

Bluez-libs: 2.25
Bluez-utils: 2.25

Have you any idea and/or suggestion?

Thanks,
Marco Pracucci


-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel


2006-08-31 19:23:05

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] ioctl: setting link mode and link policy

Hi Marco,

> >> I would like to set a "global" link mode and link policy that will be
> >> the default for every connection. Something similar to hcid.
> >>
> > what do you expect from doing this? It is not a good idea to change it
> > globally except you know exactly what you are doing. Changes these
> > settings can have implications you might not be aware of. So what is
> > your purpose on changing them?
> >
> I would become master on incoming connections and I would deny role
> switch on outgoing connections. If I'm not wrong, I should set MASTER as
> link mode and disable role switch from link policy.

this can't work. You must allow role switching. The initiator of a
piconet is always the master in the first place. They have to switch the
role to make the acceptor the master. So don't touch the link policy, it
must allow the role switch. Setting the link mode to MASTER will request
an immediate role switch after connection creation. However if both
sides have the MASTER link mode set, you will never get a connection,
because the initiator will refuse the switch the role.

> However, I can't use
> hcid, so I would do this from a custom application.
> Is it possible?

It is not wise at all to work without hcid. And you know that your
custom application must be placed under GPL.

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
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-08-31 16:42:05

by Marco Pracucci

[permalink] [raw]
Subject: Re: [Bluez-devel] ioctl: setting link mode and link policy

Hi Marcel,

>> I would like to set a "global" link mode and link policy that will be
>> the default for every connection. Something similar to hcid.
>>
> what do you expect from doing this? It is not a good idea to change it
> globally except you know exactly what you are doing. Changes these
> settings can have implications you might not be aware of. So what is
> your purpose on changing them?
>
I would become master on incoming connections and I would deny role
switch on outgoing connections. If I'm not wrong, I should set MASTER as
link mode and disable role switch from link policy. However, I can't use
hcid, so I would do this from a custom application.
Is it possible?

Thanks,
Marco


-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-08-31 16:29:56

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] ioctl: setting link mode and link policy

Hi Marco,

> I would like to set a "global" link mode and link policy that will be
> the default for every connection. Something similar to hcid.

what do you expect from doing this? It is not a good idea to change it
globally except you know exactly what you are doing. Changes these
settings can have implications you might not be aware of. So what is
your purpose on changing them?

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
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-08-31 15:15:22

by Marco Pracucci

[permalink] [raw]
Subject: Re: [Bluez-devel] ioctl: setting link mode and link policy

Hi Peter,

I would like to set a "global" link mode and link policy that will be
the default for every connection. Something similar to hcid.

Marco

> Hi Marco,
>
> depending on which level you want to set the linkmode use setsockopt()
> for your connection. E.g. for rfcomm use something like :
>
> // set security options for this service
> if(authenticate) {
> linkmode |= RFCOMM_LM_AUTH ;
> if(encrypted) linkmode |= RFCOMM_LM_ENCRYPT ;
> }
>
> if (linkmode && setsockopt(sfd, SOL_RFCOMM, RFCOMM_LM, &linkmode, sizeof(linkmode)) < 0) {
> close(sfd); sfd = 0 ;
> return -1;
> }
>
> Ciao,
>
> Peter
>


-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-08-31 12:18:28

by Peter Wippich

[permalink] [raw]
Subject: Re: [Bluez-devel] ioctl: setting link mode and link policy


Hi Marco,

depending on which level you want to set the linkmode use setsockopt()
for your connection. E.g. for rfcomm use something like :

// set security options for this service
if(authenticate) {
linkmode |= RFCOMM_LM_AUTH ;
if(encrypted) linkmode |= RFCOMM_LM_ENCRYPT ;
}

if (linkmode && setsockopt(sfd, SOL_RFCOMM, RFCOMM_LM, &linkmode, sizeof(linkmode)) < 0) {
close(sfd); sfd = 0 ;
return -1;
}

Ciao,

Peter


On Thu, 31 Aug 2006, Marco Pracucci wrote:

> Hi list,
>
> I have some problem when I try to set link mode and link policy using
> ioctl() system call. In particular, when I set link policy or link mode,
> it seems that nothing happens.
>
> -----------------
> int deviceDescriptor;
> struct hci_dev_req request;
>
> // Open device
> deviceDescriptor = hci_open_dev(deviceID);
> [...]
>
> // Set link mode
> memset(&request, 0, sizeof(request));
> request.dev_id = deviceID;
> request.dev_opt = HCI_LM_MASTER;
> ioctl(deviceDescriptor, HCISETLINKMODE, (unsigned long) &request);
> [...]
>
> // Set link policy
> memset(&request, 0, sizeof(request));
> request.dev_id = deviceID;
> request.dev_opt = policy;
> ioctl(deviceDescriptor, HCISETLINKPOL, (unsigned long) &request);
> [...]
> -----------------
>
> ioctl() system calls do not return any error, but when I check the link
> mode and link policy with "hciconfig -a" nothing has changed. Moreover,
> I have tried to debug it with "hcidump -V" but no related hci commands
> are reported.
>
> Bluez-libs: 2.25
> Bluez-utils: 2.25
>
> Have you any idea and/or suggestion?
>
> Thanks,
> Marco Pracucci
>
>
> -------------------------------------------------------------------------
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-devel
>


| Peter Wippich Voice: +49 30 46776411 |
| G&W Instruments GmbH fax: +49 30 46776419 |
| Gustav-Meyer-Allee 25, Geb. 12 Email: [email protected] |
| D-13355 Berlin / Germany |


-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel