Lines Matching refs:arp
1 /* $NetBSD: arp.c,v 1.18 1997/07/07 15:52:49 drochner Exp $ */
35 * @(#) Header: arp.c,v 1.5 93/07/15 05:52:26 leres Exp (LBL)
55 #define ARP_NUM 8 /* need at most 3 arp entries */
82 struct ether_arp arp;
89 struct ether_arp arp;
111 ah = &wbuf.data.arp;
129 panic("arp: no response for %s\n",
134 ah = &rbuf.data.arp;
137 printf("arp: response from %s\n",
139 printf("arp: cacheing %s --> %s\n",
197 printf("not arp type=%d\n", etype);
263 struct ether_arp *arp = pkt;
265 if (arp->arp_hrd != htons(ARPHRD_ETHER) ||
266 arp->arp_pro != htons(ETHERTYPE_IP) ||
267 arp->arp_hln != sizeof(arp->arp_sha) ||
268 arp->arp_pln != sizeof(arp->arp_spa) )
277 if (arp->arp_op != htons(ARPOP_REQUEST)) {
286 if (bcmp(arp->arp_tpa, &d->myip, sizeof(arp->arp_tpa)))
291 printf("arp_reply: to %s\n", ether_sprintf(arp->arp_sha));
295 arp->arp_op = htons(ARPOP_REPLY);
297 bcopy(arp->arp_sha, arp->arp_tha, sizeof(arp->arp_tha));
298 bcopy(arp->arp_spa, arp->arp_tpa, sizeof(arp->arp_tpa));
300 bcopy(d->myea, arp->arp_sha, sizeof(arp->arp_sha));
301 bcopy(&d->myip, arp->arp_spa, sizeof(arp->arp_spa));
307 (void) sendether(d, pkt, sizeof(*arp) + 18,
308 arp->arp_tha, ETHERTYPE_ARP);