You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@mynewt.apache.org by "Andrzej Kaczmarek (JIRA)" <ji...@apache.org> on 2017/12/15 09:55:00 UTC

[jira] [Commented] (MYNEWT-857) BLE Controller - incompatibility with iOS 11

    [ https://issues.apache.org/jira/browse/MYNEWT-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16292282#comment-16292282 ] 

Andrzej Kaczmarek commented on MYNEWT-857:
------------------------------------------

I think we can remove LL_SLAVE_FEATURE_REQ after connection.

It was added to make sure we always have features exchange done since we do not know whether master will initiate feature exchange or not - we use features mask to determine what features are supported on connection. However, master which supports extra features should always initiate features exchange for the same reason so we can make fair (I think) assumption that master which does not initiate features exchange also does not support extra features. The only downside here is that we may have controller on the other side which does support e.g. DLE but does not initiate features exchange on its own (for whatever reason) and we won't use DLE on connection in this case... but at least we do not break anything here.

We'll do some more testing with iPhone 6 or newer since these seem to be affected.

> BLE Controller - incompatibility with iOS 11
> --------------------------------------------
>
>                 Key: MYNEWT-857
>                 URL: https://issues.apache.org/jira/browse/MYNEWT-857
>             Project: Mynewt
>          Issue Type: Task
>      Security Level: Public(Viewable by anyone) 
>          Components: Nimble
>            Reporter: Christopher Collins
>             Fix For: v1.3
>
>         Attachments: ios2nimble-no-feat.pcap, ios2nimble.pcap, nimble_ios_1033.btt, nimble_ios_1103.btt
>
>
> Master: iPhone running iOS 11
> Slave: NimBLE device
> The iPhone successfully establishes a connection to the NimBLE device, but the CoreBluetooth {{didConnect()}} callback does not get called.  A packet trace (see attached) shows that the iPhone never initiates service discovery.
> The problem seems to occur when the NimBLE controller initiates the Feature Exchange Procedure immediately after connection establishment. The {{LL_SLAVE_FEATURE_REQ}} PDU appears to cause a problem for the iOS device.  When I comment out the call to {{ble_ll_ctrl_proc_start()}} at the bottom of {{ble_ll_conn_created()}}, the iOS device is able to connect and perform service discovery, resulting in the CoreBluetooth callback being executed.
> In the attached pcap file, the CONNECT_REQ is at packet #6211.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)