wiced_tcp_packet_send dropping data?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

I have an existing embedded application running on a BCM943362.  This embedded application communicates with an app on an iOS device using sockets, and with a web service (apache server hosted on AWS), also using sockets.  It is all pretty basic stuff and follows the tcp client/server example code.  I use wiced_tcp_send_packet (or wiced_tcp_send_buffer) for example.  I originally developed this under v3.1.2 of the Wiced SDK and it seemed to be working properly.

I have now moved to v3.3.1 of the SDK.  I now find that I can send a packet to my web service, but when it is received there is data missing.  I am sending a POST with some JSON data in the http body.  I send a total of 358 bytes (including http headers and http body), but only 349 bytes are received, and it is the last portion of the buffer that is missing (i.e. the last few bytes of the JSON).  I don't see anything missing in the middle of the received buffer.  I do not receive any errors from Wiced and the tx buffer looks good deep down at the point where nx_tcp_socket_send is being called.  This is very repeatable.

I am also seeing instances where entire packets are missing when sending to an iOS device.  Again, everything looks good, no errors on the embedded side.

Has anyone else experienced this?

Thanks,

Allen

6 Replies
Anonymous
Not applicable

I am working on an Over the Air Update process that downloads about 600K system images with TCP using WICED 3.3.1 and fails every time. Frequently I don't get all of the bytes that were sent, but on rare occasions I do, but a checksum shows that the data is corrupted even when all bytes are received. The bizarre thing is that when all packets are received, the checksum seems to give the same number, so TCP seems to be consistent in the way it corrupts the data. We are going back to using WICED 3.1.2.

Anonymous
Not applicable

Hi,

I have the same issue. I managed to make it work most of the time (but the code involves lot of retransmission), but I still get failures. I didn't try out the latest SDK yet, but the differences in the provided code don't seem to solve any issue related to this.

0 Likes
Anonymous
Not applicable

Hi,

I'd like to know if this issue is fixed or not in new SDK?

Can someone help?

Thanks.

0 Likes
Anonymous
Not applicable

For SDK 3.3.0 and 3.3.1, try set MAX_SDPCM_HEADER_LENGTH to 18 instead of 22.

0 Likes
Anonymous
Not applicable

Hi nikvh,

Can you explain a bit about this change.

What is the root cause and how this change can fix the issue?

0 Likes
Anonymous
Not applicable

Hi nikvh,

The issue is still present in SDK 3.4.0 which contains MAX_SDPCM_HEADER_LENGTH to 18

0 Likes