I am writing a Linux 2.6.10 device driver running on an MPC8248 processor and am having difficulty sending an ARP response to the kernel.
#1 sent an ARP request to #2. #2 responded back to #1 with it's hardware address. So, I have #1's IP & hardware address and #2's IP and hardware address. I am on #1 and am calling arp_create to get an sk_buff to send to the kernel using netif_rx.
The declaration for arp_create is:
struct sk_buff *arp_create(int type, int ptype, u32 dest_ip, struct net_device *dev, u32 src_ip, unsigned char *dest_hw, unsigned char *src_hw, unsigned char *target_hw)
I think I have the 1st (type), 2nd (ptype) , and 4th (dev) arguments correct:
arp_create(ARPOP_REPLY, ETH_P_ARP, dest, dev, src_ip, dest_hw, src_hw, target_hw)
Specifically:
Is "dest" #1's or #2's IP address? Is "src_ip" #1's or #2's IP address? Is "dest_hw" #1's or #2's hardware address? Is "src_hw" #1's or #2's hardware address? Is "target_hw" #1's or #2's hardware address?
Thank you.