Lines Matching full:arphdr
119 struct arphdr *arphdr;
135 iobuf = alloc_iob ( MAX_LL_HEADER_LEN + sizeof ( *arphdr ) +
142 arphdr = iob_put ( iobuf, sizeof ( *arphdr ) );
143 arphdr->ar_hrd = ll_protocol->ll_proto;
144 arphdr->ar_hln = ll_protocol->ll_addr_len;
145 arphdr->ar_pro = net_protocol->net_proto;
146 arphdr->ar_pln = net_protocol->net_addr_len;
147 arphdr->ar_op = htons ( ARPOP_REQUEST );
199 struct arphdr *arphdr = iobuf->data;
207 arp_net_protocol = arp_find_protocol ( arphdr->ar_pro );
214 if ( ( arphdr->ar_hrd != ll_protocol->ll_proto ) ||
215 ( arphdr->ar_hln != ll_protocol->ll_addr_len ) ||
216 ( arphdr->ar_pln != net_protocol->net_addr_len ) )
221 arp_sender_pa ( arphdr ) );
223 memcpy ( arp->ll_addr, arp_sender_ha ( arphdr ),
224 arphdr->ar_hln );
232 if ( arp_net_protocol->check ( netdev, arp_target_pa ( arphdr ) ) != 0)
240 memcpy ( arp->ll_addr, arp_sender_ha ( arphdr ),
241 arphdr->ar_hln );
242 memcpy ( arp->net_addr, arp_sender_pa ( arphdr ),
243 arphdr->ar_pln);
250 if ( arphdr->ar_op != htons ( ARPOP_REQUEST ) )
255 net_protocol->ntoa ( arp_target_pa ( arphdr ) ),
257 arphdr->ar_op = htons ( ARPOP_REPLY );
258 memswap ( arp_sender_ha ( arphdr ), arp_target_ha ( arphdr ),
259 arphdr->ar_hln + arphdr->ar_pln );
260 memcpy ( arp_sender_ha ( arphdr ), netdev->ll_addr, arphdr->ar_hln );
264 arp_target_ha ( arphdr ) );