RTCS packed lost

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

RTCS packed lost

858 次查看
m68000
Contributor I

For data transfer i use a communiction over UDP. Inside these frames a handshake protocol are used. After start frames with 60 bytes length (payload 14 Byte) transmitted. If the real data transfer started my pc sends packages with 1060 byte length(payload 1031 Byte). Many of these packages are lost. If the target don't receive a package after 400ms, it called the tester to transmit again.

In a previous question i have asked for detailed RTCS Memory configuration. My configuration:

  _RTCSPCB_init          = 10;
  _RTCSPCB_grow          = 2;
  _RTCSPCB_max           = 80;
  _RTCS_msgpool_init     = 4;
  _RTCS_msgpool_grow     = 2;
  _RTCS_msgpool_max      = 80;
  _RTCS_socket_part_init = 4;
  _RTCS_socket_part_grow = 2;
  _RTCS_socket_part_max  = 8;
  _UDP_max_queue_size    = 10;

_RTCSTASK_priority = 6;

The reception of frames called in a separted task: (Priority 10)

 u16Len = recvfrom(eth_u32SocketHandle, &eth_u8Buffer[0], eth_RX_BUFF_SIZE, 0, &eth_SockAddrClient....)

   if (   (u16Len != RTCS_ERROR)
          && (u16Len > 0)
      )
      {
        // read message successful
        if (u16Len > 32)
        {
           mqxutils_tracing_trace_timestamp("ETH rx data %d Bytes\n",u16Len);
        }
    }

With wireshark i can see, that the pc send the packages really fast.

标签 (1)
0 项奖励
回复
1 回复

680 次查看
danielchen
NXP TechSupport
NXP TechSupport

Hi  Stefan Lammert

From your descritption, it seems the problem is the UDP packets exceeding the MTU are lost. 

I would suggest you try the following.

1  send UDP packets exceeding MTU, then check the statistics, (I rembember there is an API to see the statistics), maybe you can get the real reason, the packet is discard? or not received?  For my experience, there is possibility that packet was lost due to fragmentation. We need to dig into rtcs stack for further analyzing. You can trace the incoming packet handling.

2  send TCP packets exceeding the MTU, if lost again, it means that the problem lies in IP layer. Otherwise we need to check UDP layer.

Regards

Daniel

---------------------------------------------------------------------------------------------------------------

Note: if this post answers your question, please click the correct button, thank you

0 项奖励
回复