Hi All,
I am building an application that receives a udp stream with RTP data payload. I am on a private network with just the EVM dm648 and my workstation. I am using NDK ndk_2_20_06_35 with the NIMU compliant hal libraries released with NDK2.00.The UDP packets are streamed from my workstation via VLC media player. I am streaming a 10mbps clip 720x480 MPEG2 clip.
The issue I am facing is that when the UDP packets received in my application are parsed for the RTP payload sequence numbers, a packet drop is reported(some packet sequence number missing). This meant that some packets are dropped (50 packets of every 40000 received packets). Wireshark does not report any loss of packets on the network. To debug the issue further i did the following
To debug this further started using the benchmark udp testee application (ndk_2_0_0\packages\ti\ndk\benchmarks\copyUDP\testee\dm648) and added the print of the "RXSOFOVERRUNS" register at the end of the application. The here also is set as a non-zero value.
The question I have is
Regards
Krishna
Hi,
I am not working on NDK but these are some generic queries/suggestions which you can verify if not already done.
What is the UDP packet size? Are you sending packets with size greater than MTU/payload?
If so, can you try sending packets lesser than MTU size & check.
Also can you check with client example & testudp as suggested below-
http://e2e.ti.com/support/embedded/bios/f/355/t/121331.aspx
Also how are you increasing socket buffer size? Using setsockopt()? You can refer to the below link if required-
http://e2e.ti.com/support/embedded/bios/f/355/t/126152.aspx
Thanks,
Prathap.
If my reply answers your question then please click on the "Verify Answer" button.
Hi Srinivas,
Thanks for your reply. Please find he answers to your query as below
Krishan
Krishan,
I am not familiar with the NDK, but I am familiar with the cpsw3g module.What you are describing would make me think that you are exceeding one or more of the FIFO capacity.I would check that flow control is enabled. Is 'cpsw3g_SetSwitchFlowControl' invoked at all?
Flow control is especially important between the switch and the host port.
Regards,Benoit
Hi Benoit,
After adding the call to 'cpsw3g_SetSwitchFlowControl' in my API unfortunately the packet drops are still present. I am not sure if I am missing something configuration because even after calling this API the CPSW register 'TXPAUSEFRAMES' is being read as zero. I am receiving on port 1 my setting for that port are as below
Port 2 FIFO setting are as below
The CPSW_CONTROL register reads a 274.
My the P1 flow control enabled ?