How to send an ARP_request and ARP_resolve

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to send an ARP_request and ARP_resolve

783 Views
alfredolopez
Contributor II

Hi,

I want to connect my own K60 board with a Linux host that has an application using UDP protocol, but before entering to UDP communication it stands for a couple of ARP_request and ARP_resolve messages. I tried to generate those ARP´s several ways (RTCS, DHCP, etc) but none generate this (I scope the line with Wireshark). Finally I programmed a direct call to ARP_request with my ip_source and ip_dest but  it generate just a couple of ARP_gratuitous_send messages.

I traced the execution and I found that ARP_request even takes ip_source and ip_dest the same value (that defined as ENET_IPADDR). I think that I can not call directly ARP's functions, but, how can I send to host an ARP_request, then an ARP_resolve?

Labels (1)
0 Kudos
3 Replies

568 Views
Martin_
NXP Employee
NXP Employee

ARP_request() is called for example from RTCS_if_probe_and_bind(). You can use ipcfg_bind_staticip(), for example. You can look at how Shell_ipconfig() implements "ipconfig ip" or "ipconfig dhcp" commands.

ARP_resolve() is called when you try to send out an IP packet.

-Martin

568 Views
alfredolopez
Contributor II

Hi Martin,

I apologyze for my delay but I was testing RTCS_if_probe_and_bind() and ipcfg_bind_staticip(). They both call the ARP_request() function but just with isrc and idest parameters equal. Thus, instead of call ARP_send() low lwvel function, they call ever the ARP_gratuitous_send() function. (I can see this with the Wireshark capture). I tested also the MQX 3.8 project "ipc_udp" but the same result. Now I will test the Shell_ipconfig() "ipconfig ip" and "ipconfig dhcp" commands. Results will follow.

0 Kudos

568 Views
alfredolopez
Contributor II

Finally I discovered that a "Ping" function generates ARP_request untill contact is established and then, when the counterpart asks also for ARP_request, it generates an ARP_resolve. This is, more or less, that I was searching for. I was found it trough the Shell_ping() command following Martin indications.Thank you Martin.

0 Kudos