mynewt-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher Collins (JIRA)" <>
Subject [jira] [Commented] (MYNEWT-857) BLE Controller - incompatibility with iPhone 8 (and iPhone X?)
Date Wed, 03 Jan 2018 05:38:00 GMT


Christopher Collins commented on MYNEWT-857:

I'm happy to hear that you were able to replicate the issue.  Unfortunately, I am still puzzled.
 If the peer does not exchange its MTU, the nimble stack just uses the minimum value (23).
 I don't think the lack of MTU exchange by itself causes any problems for nimble, as most
of the testing we do does not include any MTU exchange.  However, it is possible that the
iOS Bluetooth stack requires a minimum MTU to "finalize" a connection.  Perhaps the iOS stack
is designed to always perform MTU exchange after connection establishment, and the remainder
of the procedure assumes a particular minimum.

> BLE Controller - incompatibility with iPhone 8 (and iPhone X?)
> --------------------------------------------------------------
>                 Key: MYNEWT-857
>                 URL:
>             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

View raw message