question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

iOS/Android MTU value

See original GitHub issue

Hi, we are facing a strange issue while implementing iOS/Android cross mesh network support.

We successfully import the mesh created from iOS in Android but we can’t proxy with nodes provisioned on iOS. Apparently the nodes still expect a message segmentation based on the iOS MTU and so they refuse the Android segmentation.

2021-04-21 09:43:03.762 6608-6608/com.xxx.xxx E/MeshManagerApi: Parsing notification failed: 0x010100DBB840445C751109000000006631B8E66B - Incorrect Secure Network Beacon length: 19, expected: 22. Check MTU and Proxy Protocol segmentation.

If we depower and repower the devices the renegotiate the MTU to 23 (default) and everything gets back to normal.

Is this behaviour expected? There is a way to force an MTU negotiation before sending new proxy messages? Should we address this during the import? There is a fix for this issue in library versions released after 2.1.4? Unfortunately we still couldn’t manage to plan an update to the next major.

Thanks a lot.

Platform details:

  • Device: Any
  • OS: Any
  • Library Version: 2.1.4

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:6 (3 by maintainers)

github_iconTop GitHub Comments

2reactions
fiveaglecommented, Apr 21, 2021

Anyway setting MAX mtu makes the trick. Our fork was still requesting default instead of max.

Thanks a lot for the super quick responses!!!

0reactions
fiveaglecommented, Apr 21, 2021

Observe, that the message you receive starts with 0x01. Two MSBits are 0b00, which means this packet should contain the whole packet. Looks like your device thinks the current MTU is higher, while in fact it’s 23.

In fact iOS negotiates at least 66 in my tests. Is it correct that the mesh device still expects 66? Should I close o reset something on iOS side?

Read more comments on GitHub >

github_iconTop Results From Across the Web

iOS - MTU Size for BLE data transfer between iOS device and ...
You can use whatever MTU size you want (up to 512). The value that the connection will use is always the minimum between...
Read more >
CoreBluetooth: Reduced MTU when up… - Apple Developer
We are seeing a strange behaviour where the maximum MTU size sent from the phone to our peripheral has decreased from 185 (iOS...
Read more >
ble_app_uart ATT MTU size configuration - Nordic Q&A
The default size of the ATT MTU is 23 bytes, but the SoftDevice allows for sizes up to 512. In this demo you...
Read more >
Issue #498 · innoveit/react-native-ble-manager · GitHub
I'm having issues as well, I'm trying to increase the MTU size with bleManager.requestMTU(id, 244). The promise returns and says it has updated ......
Read more >
configure network interface mtu - Trend Micro
Configures the MTU size for a network interface. Syntax: configure network interface mtu <interface> <mtu>. View. Privileged.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found