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.

TI c6670 DSP , NETCP - Packet Accelerator "PDSP " supporting IPv6

HI,

 

I am using the C6670 DSP, for GSM baseband processing.

For the Layer 1 and Layer 2 interface we are using the ethernet packets "IPv4".

The NETCP - PA module takes care for the L2,L3,L4 header decoding and the corresponding PDSP firmware is provided by TI.

Currently it is supporting the IPv4, can it support IPv6 ? If yes , can you share a sample code/example using the IPv6 packets.

Regards,

Manav

  • Manav,

    There is no direct test code for your requirement. I can suggest you to refer the Network Client Example Application provided by TI NDK.
    The client example is the most important of all the example programs since it includes the most components of an actual network application. The client example can use either DHCP or a statically configured IP address. It launches a console application accessible via Telnet, an HTTP server with a couple of example WEB pages, plus several data servers that can be tested by running client test applications on a Windows PC. This application also illustrates the IPv6 stack functionality.

    Please go through the section "2.2.3.4 IPv6 Stack Testing" at TI Network Developer's Kit (NDK) User's Guide to find the detailed information for how to enable the IPv6.

  • Hi, thanks for the reply.

    I am working on using IPv6 with Packet Acclerator (PA) LLD in TCI6670 for the ethernet packets being send/receive between Layer 1 and Layer 2 .

    Like for the IPv4, the UDP checksum calculation in done by the PA LLD using the  "pseudo header -  UDP / IP header fields".

    Now as the IPv6 does not have own checksum but for higher layers like UDP , the pseudo header "IPv6/UDP" needs to be calculated.

    Is the PA LLD is supporting the UDP checksum computation for the pseudo header "IPv6/UDP" ??

    Regards, Manav

     

  • Manav,

    PA LLD will support  the UDP checksum computation for the pseudo header "IPv6/UDP".

  • Hi Pubesh,

    I am able to Loopback the IPv6 packets using the PA LLD.

    For the testing, I have taken the PA_UnitTest_TestProject --> "paTestTxFmtRt" "and made the changes to support the IPv6.

    Received packet seems to be correct but the error flag is set with value "4" whenever I use the command to calculate the UDP checksum and TX Route.

    "eflags = Cppi_getDescError (Cppi_DescType_HOST, (Cppi_Desc *)hd) & 0xf;

    Can you suggest what might be the reason for the error flag?

     

    Regards, Manav

     

     

     

     

     

  • Manav,

    It may be issue with the configuration. Link the configuration packet to a descriptor to prepare the packet to be sent to the PA. 


    When a descriptor (with linked packet) is pushed into one of the TX queues, the PA packet DMA automatically transfers the packet to the specific engine in the PA.

    Please check the section "Transmit Checksum Generation Example" and "Adding Entries to the Classification Engines" in the Packet Accelerator (PA) User Guide.

  • Hi Pubesh,

    Thanks for the reply.

    I believe that issue was on my side." Invalid pseoudo header". Thats why UDP error flag is set.

    I am facing an other problem in SGMII Loopback -->  ETH_LOOPBACK_INTERNAL

    In the driver code, I am facing an other problem like when i am sending packet on the PA TXQueue[8] without the checksum TX cmd, I am able to receive the IP packet successfully. But when I generate a TX cmd for the UDP checksum and send on the PA TXQueue[4] with the route dest =  "pa_DEST_EMAC", then I dont receive the IP packet.

    please suggest, How to troubleshoot this issue ?

     

    Regards, Manav

     

     

  • Manav,

    Please check this E2E post, will help you.

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/197239/703867.aspx#703867
    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/237096.aspx

  • Hi,

    Thanks for the reply.

    I am able to route the IP packets successfully.

    But  when I use the TX cmd to calculate the IP/UDP checksum its returning the value to be 0x0000.

     

    I am pushing the packets in the PA_TX_Q[4] with the route destination Queue PA_TX_Q[8]. EMAC in loopback mode pushes the same in the Host RX Q.

    I am doing the same as suggested in the PA LLD example "test3.c".

     

    Regards, Manav

  • HI Pubesh,

    I have resolved the problem.

    PSInfo issue :- word index to be updated in the pa_SET_TX_CHKSUM_LENGTH() & pa_SET_TX_CHKSUM_INITVAL() .

     

    Thanks for the help and time.

    Regards, Manav

     

     

     

     

     

     

  • Manav,

    Thanks for the update and shared details. I hope, this will be useful for the future readers if they get similar issue.