Lines Matching refs:header

54 	// TODO: this should be a variable length header, but for our current
569 handle_arp_request(net_buffer *buffer, arp_header &header)
574 arp_update_entry(header.protocol_sender,
581 arp_entry *entry = arp_entry::Lookup(header.protocol_target);
594 header.opcode = htons(ARP_OPCODE_REPLY);
596 memcpy(header.hardware_target, header.hardware_sender, ETHER_ADDRESS_LENGTH);
597 header.protocol_target = header.protocol_sender;
598 memcpy(header.hardware_sender, LLADDR(&entry->hardware_address),
600 header.protocol_sender = entry->protocol_address;
603 memcpy(LLADDR((sockaddr_dl *)buffer->source), header.hardware_sender,
605 memcpy(LLADDR((sockaddr_dl *)buffer->destination), header.hardware_target,
618 handle_arp_reply(net_buffer *buffer, arp_header &header)
624 arp_update_entry(header.protocol_sender, (sockaddr_dl *)buffer->source, 0);
637 arp_header &header = bufferHeader.Data();
638 uint16 opcode = ntohs(header.opcode);
641 dprintf(" hw sender: %s\n", mac_to_string(header.hardware_sender));
642 dprintf(" proto sender: %s\n", inet_to_string(header.protocol_sender));
643 dprintf(" hw target: %s\n", mac_to_string(header.hardware_target));;
644 dprintf(" proto target: %s\n", inet_to_string(header.protocol_target));
647 if (ntohs(header.protocol_type) != ETHER_TYPE_IP
648 || ntohs(header.hardware_type) != ARP_HARDWARE_TYPE_ETHER)
653 if (header.hardware_length != ETHER_ADDRESS_LENGTH
654 || header.protocol_length != sizeof(in_addr_t))
662 if (handle_arp_request(buffer, header) == B_OK) {
670 handle_arp_reply(buffer, header);
794 // prepare ARP header
797 arp_header &header = bufferHeader.Data();
799 header.hardware_type = htons(ARP_HARDWARE_TYPE_ETHER);
800 header.protocol_type = htons(ETHER_TYPE_IP);
801 header.hardware_length = ETHER_ADDRESS_LENGTH;
802 header.protocol_length = sizeof(in_addr_t);
803 header.opcode = htons(ARP_OPCODE_REQUEST);
805 memcpy(header.hardware_sender, device->address.data, ETHER_ADDRESS_LENGTH);
806 memset(header.hardware_target, 0, ETHER_ADDRESS_LENGTH);
807 header.protocol_sender = protocol->local_address;
808 header.protocol_target = address;