This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Is there any limitation of 6lowpan packet size

HI,

Currently I try to run example/iot/tcp/client in nrf51 iot sdk on nrf51-dk board. Then on server side, I use "ping6" command to test the data sending and receiving.

According to this RFC related to 6LowPAN: tools.ietf.org/.../rfc4944,

4.Maximum Transmission Unit

The MTU size for IPv6 packets is 1280 octets. So I test to send 1280 octets using ping6 -s option.

But I found I can at most set the packet size to 1010. If I set the value larger than 1010, this packet will lost. After debugging, I found if setting the packet size larger than 1010, 6lowpan will not even generate the BLE_6LO_EVT_INTERFACE_DATA_RX event. So I wonder if 6lowpan protocol has limitation of packet size.

update:

I found some macros may be related to this issue. In ble_ipsp.h, there are two macros: BLE_IPSP_MTU and BLE_IPSP_RX_BUFFER_SIZE. The value of these macros is 1024 in nrf51_iot_sdk, and 1280 in nrf5x_iot_sdk. I also found this buffer is allocated in 6lowpan, but I can't modify it because 6lowpan is provided as a library. So do they cause the limitation of packet size? If they do, is there any thrick to modify the MTU limitation?

Related