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.

TMS320C6678: Can't receive ARP type package

Genius 13655 points
Part Number: TMS320C6678
Other Parts Discussed in Thread: TEST2

Hello Champs,

HW: C6678 EVM board

1. Customer can receive UDP, TCP, DNS type package in ipv4 protocol. But he can't receive ARP package: ethInfo.ethertype = 0x0806; Does PA network support ARP type package?

2. If PA network doesn't support ARP type, how does the c6678 support APR?

Customer referenced below thread. 
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/223968/how-to-receive-arp-requests-with-netcp

He modified ethertype to 0x0806, but he still can't receive ARP package.

Below is his configuration code. 

/* Initialize structure variable value */
memset(&ethInfo, 0x0, sizeof(ethInfo));

/* Ethernet type = IPv4 */
ethInfo.ethertype = 0x0806;

/* Input EMAC port = dont care */
ethInfo.inport = pa_EMAC_PORT_NOT_SPECIFIED;

if(Add_MACAddress (ethInfo) != 0) {
printf("PASS add MACAddress failed\n");
return -1;
}

/* Initialize structure variable value */
memset(&ipInfo, 0x0, sizeof(ipInfo));

/* Ethernet type = IPv4 */
ipInfo.ipType = pa_IPV4;
/* TOS = dont care */
ipInfo.tosCare = FALSE;

/* Add the IP address the example uses */
if(Add_IPAddress(ipInfo) != 0) {
printf("PASS add IPAddress failed\n");
return -1;
}

/* Add the port number on which our application is going to listen on */
if(Add_Port(DST_PORT) != 0) {
printf("PASS add Port failed\n");
return -1;
}

...



Thanks
Rgds
Shine

  • Hi Shine,

    As far as I know, C6678 PA supports ARP. However, I will check and come back with more details.

    Thanks

    Rajarajan U

  • Hi Shine,

    One of the PDK's projects "PA_UnitTest_evmc6678_C66BiosTestProject", which runs several unit tests on PA, has a test case for ARP packet parsing. Let me do the checks on my EVM and provide the update.

    I request you to have a look on 

    "C:\ti\pdk_c667x_2_0_16\packages\ti\drv\pa\test\PAUnitTest\src\tests\test2.c" and "C:\ti\pdk_c667x_2_0_16\packages\ti\drv\pa\test\PAUnitTest\src\tests\test2pkts.h".

    Thanks,

    Rajarajan U

  • Hi Shine,

    • In Processor SDK 06.03, the NIMU EMAC Client example located at,  "C:\Users\rajar\C6678\NIMU_emacClientExample_EVMC6678C66BiosExampleProject" has ARP type packet transfer.

      • I have experimented personally on C6678 EVM and ARP-type packet transfer is successful.

    • To generate NIMU EMAC examples, Please follow this FAQ: PDK Generation for C6678.

    • The steps on "how to" run this NIMU EMAC example are given in this FAQ: NIMU EMAC Example.

    Thanks

    Rajarajan U

  • kHi Shine,

    I have tested the ARP in my EVM, Following observations are made.

    • ARP table before and after running the NIMU project has been examined,

      • Before 

      • After 

      • FYI, In the above observation, the Host IP is "192.168.0.103" and EVM IP is "192.168.0.106".

      • Though, the ARP table runs on HOST RAM. It did receive IP configuration information from either router or my Host PC, Thus only after successful configuration IP and MAC address are matched.

    • In "PA_UnitTest_evm6678_C66BiosTestProject", on test2.c. ARP packet with eth type "0x0806" was sent.

      • The packet was maintained in array "t2EthAndSwinfo" at index 10 and sent with the below code.

      • for (i = 0; i < 5; i++)  {
         		cmdReply.replyId = T2_CMD_SWINFO0_ADD_ID + i + 7;
         		matchRoute.swInfo0 = nfailRoute.swInfo0 = t2EthAndSwinfo[i+7].swinfo0;
         		hd[i] = testCommonAddMac (tf, t2EthIndex[i+7], (paEthInfo_t *)&t2EthAndSwinfo[i+7].eth, &matchRoute, &nfailRoute, 
         	                        &l2Handles[i+7].paHandle, tf->QGen[Q_CMD_RECYCLE], tf->QLinkedBuf2,
         	                        &cmdReply, &cmdDest, &cmdSize, &paret);
         	    paL2HandleError (tf, pat, l2Handles, paret, hd[i]);  /* Will not return on error */
         	}
    • I can confirm that Test case "test2" is passed, which confirms the ARP package is sent. 

    Thanks,

    Rajarajan U

  • Hi Shine,

    The NDK document that I have referred to for this test, the NDK User guide.

    Thanks

    Rajarajan U