Lines Matching refs:header
69 arp_header *header = (arp_header*)data;
71 if (header->hardware_format != htons(ARPHRD_ETHER)
72 || header->protocol_format != htons(ETHERTYPE_IP)
73 || header->hardware_length != sizeof(mac_addr_t)
74 || header->protocol_length != sizeof(ip_addr_t)
76 || header->sender_mac == kNoMACAddress
77 || header->sender_mac == kBroadcastMACAddress
79 || (header->opcode != htons(ARPOP_REQUEST)
80 && header->opcode != htons(ARPOP_REPLY))) {
85 if (header->opcode == htons(ARPOP_REQUEST)
87 || header->target_ip != htonl(fEthernet->IPAddress()))) {
92 if (header->opcode == htons(ARPOP_REPLY)
94 || header->target_mac != targetAddress)) {
99 if (header->sender_ip != htonl(INADDR_ANY)
100 && header->sender_ip != htonl(INADDR_BROADCAST)) {
101 _PutEntry(ntohl(header->sender_ip), header->sender_mac);
105 if (header->opcode == htons(ARPOP_REQUEST)) {
106 _SendARPPacket(ntohl(header->sender_ip), header->sender_mac,
167 // prepare ARP header
168 arp_header header;
169 ChainBuffer headerBuffer(&header, sizeof(header));
170 header.hardware_format = htons(ARPHRD_ETHER);
171 header.protocol_format = htons(ETHERTYPE_IP);
172 header.hardware_length = sizeof(mac_addr_t);
173 header.protocol_length = sizeof(ip_addr_t);
174 header.opcode = htons(opcode);
175 header.sender_mac = fEthernet->MACAddress();
176 header.sender_ip = htonl(fEthernet->IPAddress());
177 header.target_mac = (mac == kBroadcastMACAddress ? kNoMACAddress : mac);
178 header.target_ip = htonl(ip);