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?