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.

Intercepting Ethernet frames

Other Parts Discussed in Thread: TMS320C6472

Hi,

I would like to intercept Ethernet frames (that carries IP packets) sent to my C6670 board. If I understand correctly, the NDK does not allow me to do that. Say if I want to bypass the IP stack provided by the NDK (or I'm not going to use NDK at all), and handle the Ethernet frames, what are the options to intercepting the frames? FYI I'm using MCSDK 2_00_00_00_11 and CCSv5.0.3.

I have looked at TMS320C6000 Network Developer's Kit (NDK) Support Package Ethernet Driver Design Guide, and the NIMU layer seems like a good place for me to do that. But the MCSDK user guide mentions that the NIMU is supposed to be used only the the NDK core...If I want to use this NIMU API, which I think can be found under pdk_C6670_1_0_0_11\packages\ti\transport\ndk\nimu, can I just include the ti.transport.ndk.nimu.ae66 library into my project? I'm struggling on this front to do a simple EmacInit. Am I supposed to use it this way?

If I go down the CSL EMAC path, things seem to get complicated. Anyway, I don't seem to be able to use the API as documented in TMS320C6472 Chip Support Library
API Reference Guide. I am aware that this API is for C6472. Does this mean that the API for the EMAC module is not available for C6670? I searched my entire installation and couldn't file header files for the EMAC API. The examples under Chapter 8 of this CSL API Reference Guide seem useful to get me started, if only I can use this API...

I'm pretty stucked so any help will be much appreciated.

Thank you in advance.

Chiang

  • Found that someone in the forum is also trying to do similar thing - "Adding promiscuous mode support to NIMU" and "NDK Raw Ethernet, not really raw?"

    Not entirely sure yet to what extent the solution or hack is applicable to my platform (EVM6670L). I'm going to give it a go, and use the NDK raw Ethernet socket to pick up all the frames. But as is mentioned by Mitch in one of the threads, this involves hacking nimu_eth.c so that all frames, regardless of which ether type, can be filtered to the raw Ethernet socket instead. This does not seem like a clean way for me to handle the frames. Is there a better suggestion than this? StarCore from Freescale looks increasingly like a better option I'm afraid...

    Chiang

     

     

  • Chiang,

     

    If you want to use the EMAC CSL APIs, please see try the EMAC example installed with the PDK. This will show you how to setup the EMAC using the CSL with the C6670.

    On my PC, the project was installed in the following location:

    C:\Program Files\Texas Instruments\pdk_C6670_1_0_0_9_beta2\packages\ti\drv\exampleProjects\PA_emacExample_exampleProject

    The source code can be found at the following location:

    C:\Program Files\Texas Instruments\pdk_C6670_1_0_0_9_beta2\packages\ti\drv\pa\example\emacExample

    I hope this helps.

    Also, you can also visit the C6670 product page to find the user guide for the Gigabit Ethernet Switch Subsystem. The Gigabit Ethernet Switch Subsystem is part of the Network coprocessor (NETCP). The user guide for the NETCP can also be found on the C6670 product page.

    http://focus.ti.com/docs/prod/folders/print/tms320c6670.html

    Regards,

    Derek