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.

TM4C129XNCZAD: send ARP probe and announcement packets using TI-NDK

Part Number: TM4C129XNCZAD

while changing the IP settings I notice on the Wireshark that the NDK is sending an ARP Probe and announcement packets upon changing the IP so how can I do the same during startup?

  • Hi,

      Looks like in NtAddNetwork(), it calls RTCAddHook(). What I can see is that as soon as RTCAddHook is called, the ARP packet is sent as seen on Wireshark. This is after the IP is obtained the first time. I'm not an NDK expert. This is what I can find by placing breakpoints. 

  • thanks charles for you reply

    I agree with you and we are on the same page, and as I mentioned in this thread 
    TM4C129XNCZAD: issue with arp announcement packet during NS_BootTask task - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

    the issue is related to timing Issue with NDK tasks so after investigating a little in the ndk I found that the NDK by default sends this ARP broadcasting message but there is a timing issue inside the NDK that prevent this message from being transmitted on the network interface so we cant see it on wireshark but messing around with NDK I added a delay before sending the packet at 

    - ndk/stack/bind/bind.c file I added the line in Green

    HANDLE BindNew( HANDLE hIF, IPN IPHost, IPN IPMask )
    {
        ...
        if( IFGetType( hIF ) == HTYPE_ETH && IPHost != INADDR_ANY  && IPHost != INADDR_BROADCAST )
        {
              TaskSleep(2500);
              LLIGenArpPacket( hIF, IPHost );
        }
        ...
    }

    this enables the boot task to wait till the lower NDK task initializations is performed 

    I will give it another try to find the specific signal that initializes the interface from NDK tasks but for now this solved my issue and now I can see the Arp Broadcasting message on the network with each NDK boot sacrificing the time overhead  (2500ms) ExpressionlessShrug

    and of course if anyone made that change don't forget to build the stack Cocktail