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

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

     [ https://issues.apache.org/jira/browse/MYNEWT-857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christopher Collins updated MYNEWT-857:
---------------------------------------
    Description: 
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 {{ios2nimble.pcap}} file) 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 {{ios2nimble.pcap}}, the CONNECT_REQ is at packet #6211.

  was:
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.


> 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 {{ios2nimble.pcap}} file) 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 {{ios2nimble.pcap}}, the CONNECT_REQ is at packet #6211.



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