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)
54 #define ARP_NUM 8 /* need at most 3 arp entries */
80 struct ether_arp arp;
102 ah = &wbuf.data.arp;
122 panic("arp: no response for %s\n",
132 printf("arp: response from %s\n",
134 printf("arp: cacheing %s --> %s\n",
188 printf("not arp type=%d\n", etype);
257 struct ether_arp *arp = pkt;
259 if (arp->arp_hrd != htons(ARPHRD_ETHER) ||
260 arp->arp_pro != htons(ETHERTYPE_IP) ||
261 arp->arp_hln != sizeof(arp->arp_sha) ||
262 arp->arp_pln != sizeof(arp->arp_spa) )
271 if (arp->arp_op != htons(ARPOP_REQUEST)) {
280 if (bcmp(arp->arp_tpa, &d->myip, sizeof(arp->arp_tpa)))
285 printf("arp_reply: to %s\n", ether_sprintf(arp->arp_sha));
289 arp->arp_op = htons(ARPOP_REPLY);
291 bcopy(arp->arp_sha, arp->arp_tha, sizeof(arp->arp_tha));
292 bcopy(arp->arp_spa, arp->arp_tpa, sizeof(arp->arp_tpa));
294 bcopy(d->myea, arp->arp_sha, sizeof(arp->arp_sha));
295 bcopy(&d->myip, arp->arp_spa, sizeof(arp->arp_spa));
301 (void) sendether(d, pkt, sizeof(*arp) + 18,
302 arp->arp_tha, ETHERTYPE_ARP);