This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I am loosing data packets using NDK on DSP core of DM8148 .

I faced a smilar issue while working on linux and it got fixed by adjusting 

sysctl -w net.core.rmem_max=8388608

Now i am working on RTOS , and i m loosing packets , i want to know how i can fix this issue in Rtos. 

  • Well I'm not really sure what it could be based on the limited info you provide, so I'll take a guess here.

    Try adjusting the size of the TCP or UDP send/receive buffers.  Since you didn't provide any info on the type of data you are losing, I can't do much more than guess as how to help you.

    Steve

    =============================

  • Thanks for the reply,
    i have adjusted that , but its of no use .
    You know how can i adjust the udpRxlimit and can change emac driver settings ?

    BR
    Ammar
  • I am losing udp data .

    BR

    Ammar 

  • Ammar,

    Can you please explain your network setup and or topology?  Is your DM8148 receiving UDP packets from a PC?  Are the two hosts connected using a router, on a LAN?  Or is this between two hosts on the WAN?

    You need to provide more information on your set up, what you are trying to do, which host is the client/server, etc.  Otherwise, the help I can give you will be very limited.

    Ammar said:
    You know how can i adjust the udpRxlimit

    There is no UDP receive limit.

    Are you seeing the packets in Wireshark?  If you are not using Wireshark, please make a Wireshark capture of this scenario.

    Finally, please refer to the following section of the NDK User's Guide (spru523*.pdf):

    • 3.5.1 Troubleshooting Common Problems
      • UDP application drops packets on send() calls
      • UDP application drops packets on recv() calls.

    Steve

  • Thank you for your reply ,

    I have connected DM 8148 Evm with an ip camera , they are connected to the lan , i am trying to get the frames using dsp core and display it using the arm core using RTOS.

    I am just printing my frame id to know which frame i am misssing and which is not , ,my dsp skips first three frames then print next 4 ,5,6 frames then again miss frames and after that i am getting 1 frame after every 8 missed frames. 

    Have tried it with linux , with everything running on arm core , but loosing half of the frames on that , still that was better.I moved to rtos hoping that i can get better frame rate.

    Regards

    Ammar 

  • Hi Ammar,

    Ok, thank you for explaining your set up, this helps.

    Ammar said:
    I have connected DM 8148 Evm with an ip camera , they are connected to the lan

    Were you able to use Wireshark to see the network traffic between the camera and the DM8148?

    For debugging network issues, Wireshark is an essential tool, and it's free.  Note that you may need a switch that allows port mirroring in order to see all of the data, but if you can get a capture, this is the first step.  You want to verify that the frames you are expecting from the IP camera are actually coming in on the wire to the DM8148, as it's possible that they are dropped elsewhere, before ever reaching the DM8148.

    Will you be able to get Wireshark and make a capture of this?

    Ammar said:
    I am just printing my frame id to know which frame i am misssing and which is not , ,my dsp skips first three frames then print next 4 ,5,6 frames then again miss frames and after that i am getting 1 frame after every 8 missed frames. 

    Where are you printing this info at?  Is it in the Ethernet driver?  If so, which function? Is the function running at ISR level?

    Ammar said:
    Have tried it with linux , with everything running on arm core , but loosing half of the frames on that , still that was better.I moved to rtos hoping that i can get better frame rate.

    So you have the same application level code running on the ARM, but on Linux? And you are also seeing an issue with dropped frames in that case, too?

    Steve

  • Thank you for your reply ,
    Camera is sending all the frames, have checked on wire shark.

    On linux i was lossing the packet while trying to store them in an array , before displaying ... thats why i shifted to rtos in hope that i can get better frame rate .
  • I am posting my console here ,

    [C674X_0] Using MAC Address: 00-18-32-62-1d-0a
    SetPhyMode:000021E1 Auto:1, FD10:64, HD10:32, FD100:256, HD100:128, FD1000:8192 LPBK:0
    EMAC has been started successfully
    Registeration of the EMAC Successful
    Service Status: DHCPC : Enabled : : 000
    Service Status: DHCPC : Enabled : Running : 000

    cpsw_MDIO_FindingState: PhyNum: 0
    cpsw_MDIO_PhYReset(0)
    Enable Phy to negotiate external connection
    NWAY Advertising: FullDuplex-1000 FullDuplex-100 HalfDuplex-100 FullDuplex-10 HalfDuplex-10
     
    Negotiated connection: FullDuplex 1000 Mbs
    Link Status: 1000Mb/s Full Duplex on PHY 0
    Network Added: If-1:192.168.10.102
    Service Status: DHCPC : Enabled : Running : 017

    Discovery Command Sent:B,1
    Discovery Command Sent:B,2
    Discovery Command Sent:B,3
    Discovery Command Sent:B,4
    Discovery Command Sent:B,5
    Discovery Command Sent:B,6
    Discovery Command Sent:B,7
    Discovery Command Sent:B,8
    Discovery Command Sent:B,9
    1288 5
    1288 6
    1288 7
    1288 A
    1288 12
    1288 1A
    1288 22
    1288 2A
    1288 31
    1288 39
    1288 40
    1288 48
    1288 4F
    1288 57
    1288 5E
    1288 66
    1288 6E
    1288 75
    1288 7D
    1288 FFFFFF84
    1288 FFFFFF8C
    1288 FFFFFF93
    1288 FFFFFF9B
    1288 FFFFFFA2
    1288 FFFFFFAA
    1288 FFFFFFB1
    1288 FFFFFFB9
    1288 FFFFFFC1
    1288 FFFFFFC8
    1288 FFFFFFD1
    1288 FFFFFFDB
    1288 FFFFFFE2
    1288 FFFFFFEA
    1288 FFFFFFF3
    1288 FFFFFFFA
    1288 2
    1288 A
    1288 11
    1288 19
    1288 20
    1288 28
    1288 2F
    1288 37
    1288 3E
    1288 46
    1288 4E
    1288 55
    1288 5D
    1288 64


    1288 is length of frame while next to it is FRAME Id.

  • Ammar,


    Again, where are you printing this frame info out?  Are you doing this in the driver?

    Can you also please check the following NDK statistics?  "ips" and "udps" ... these might reveal a clue as to what's being dropped and why.

    You can view these stats by putting them into an expressions window within CCS.  See below screen shot for example.

    Steve