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

2017-12-18 Thread Lance Cohen (JIRA)

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

Lance Cohen commented on MYNEWT-857:


Chris, from all accounts from our iOS dev the issue  appears to be very random 
with no real pattern to it. He's reported that it can go for days without 
triggering the failure mode that leads to the "stuck in connect" state while at 
other times its triggered by just a few connections. So that makes capturing 
this with a sniffer harder. We do have an Adafruit sniffer that we've used to 
pipe data into Wireshark so I will try to see if I can capture a packet trace 
when this failure mode occurs. Our target is the Red Bear 2 module (based on 
nRF52). We're going to try and test with the "bleprph" example to see if the 
issue can be reproduced on it as well, also with the top of master (our app is 
currently based on MyNewt 1.2).

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


[jira] [Commented] (MYNEWT-857) BLE Controller - incompatibility with iPhone 8 (and iPhone X?)

2017-12-18 Thread Lance Cohen (JIRA)

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

Lance Cohen commented on MYNEWT-857:


Hi Chris,
1. Models tested so far are iPhone 7 and X. We have some older versions (5 & 6) 
which we will try to repro the issue on as well.
2. From our experience, the issue seems to be more related to iOS 11 rather 
than phone hardware as prior to iOS11 ous phone-device interactions did not 
trigger this issue. There are known high profile issues with iOS 11 (eg: the 
likes of Garmin having problems - with phones losing connections etc) the 
question is what could trigger the issue/state where the phone's BT stack goes 
wacky. Apple should really address this but hopefully we can get to the bottom 
of what triggers this state.
3. Unfortunately not, behavior is the same.
4. As mentioned we will try to isolate things and have a similar test setup to 
yours testing with nRF52 and the running bleprph. I will provide an update on 
this testing when I have one.

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


[jira] [Comment Edited] (MYNEWT-857) BLE Controller - incompatibility with iPhone 8 (and iPhone X?)

2017-12-18 Thread Lance Cohen (JIRA)

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

Lance Cohen edited comment on MYNEWT-857 at 12/19/17 1:21 AM:
--

Hi Chris,
1. Models tested so far are iPhone 7 and X. We have some older versions (5 & 6) 
which we will try to repro the issue on as well.
2. From our experience, the issue seems to be more related to iOS 11 rather 
than phone hardware as prior to iOS11 our phone-device interactions did not 
trigger this issue. There are known high profile issues with iOS 11 (eg: the 
likes of Garmin having problems - with phones losing connections etc) the 
question is what could trigger the issue/state where the phone's BT stack goes 
wacky. Apple should really address this but hopefully we can get to the bottom 
of what triggers this state.
3. Unfortunately not, behavior is the same.
4. As mentioned we will try to isolate things and have a similar test setup to 
yours testing with nRF52 and the running bleprph. I will provide an update on 
this testing when I have one.


was (Author: lance_proxy):
Hi Chris,
1. Models tested so far are iPhone 7 and X. We have some older versions (5 & 6) 
which we will try to repro the issue on as well.
2. From our experience, the issue seems to be more related to iOS 11 rather 
than phone hardware as prior to iOS11 ous phone-device interactions did not 
trigger this issue. There are known high profile issues with iOS 11 (eg: the 
likes of Garmin having problems - with phones losing connections etc) the 
question is what could trigger the issue/state where the phone's BT stack goes 
wacky. Apple should really address this but hopefully we can get to the bottom 
of what triggers this state.
3. Unfortunately not, behavior is the same.
4. As mentioned we will try to isolate things and have a similar test setup to 
yours testing with nRF52 and the running bleprph. I will provide an update on 
this testing when I have one.

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


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

2017-12-16 Thread Lance Cohen (JIRA)

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

Lance Cohen commented on MYNEWT-857:


Hi guys, just wanted to report that we've tested the proposed fix for this 
issue (removing the call to `ble_ll_ctrl_proc_start()` in 
`ble_ll_conn_created()`) and our iOS dev is still seeing intermitting cases 
(that are hard to reproduce) where the iOS 11 is "totally stuck" and can never 
connect to the device again, unless BT is toggled on the phone. He's tested 
with iPhone 7 and iPhone X. Are there any further updates / proposed fixes to 
this that we can try and test? 

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


[jira] [Commented] (MYNEWT-857) BLE Controller - incompatibility with iPhone 8 (and iPhone X?)

2018-04-02 Thread Lance Cohen (JIRA)

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

Lance Cohen commented on MYNEWT-857:


Hi [~jerobi], sounds like your experience with the iPhone X is fairly binary 
w.r.t commenting out that line that Chris suggested. Our experience is 
unfortunately not super easy to replicate its very intermittent / random. One 
thing we did notice while trying to capture the packet sequence leading up to 
and upon entering the BT "hang" state is there are *no* BT packets that are 
transmitted from the iPhone - so its seems like the stack in this state is 
permanently wedged until BT is restarted as you mentioned. Unfortunately, 
capturing the sequence leading up to the hang has proven to be elusive.

> 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
>Priority: Major
>  Labels: NimBLE
> 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
(v7.6.3#76005)