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

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: 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)

Reply via email to