Lines Matching refs:header
90 // check header
91 const ip_header *header = (const ip_header*)data;
92 // header length OK?
93 int headerLength = header->header_length * 4;
96 || header->version != IP_PROTOCOL_VERSION_4
98 || ntohs(header->total_length) > size
100 || (header->destination != htonl(INADDR_BROADCAST)
102 || header->destination != htonl(fEthernet->IPAddress())))
104 || _Checksum(*header) != 0) {
112 if (service->IPProtocol() == header->protocol) {
113 service->HandleIPPacket(this, ntohl(header->source),
114 ntohl(header->destination),
116 ntohs(header->total_length) - headerLength);
135 // prepare header
136 ip_header header;
137 ChainBuffer headerBuffer(&header, sizeof(header), buffer);
138 header.header_length = 5; // 5 32 bit words, no options
139 header.version = IP_PROTOCOL_VERSION_4;
140 header.type_of_service = 0;
141 header.total_length = htons(headerBuffer.TotalSize());
142 header.identifier = 0;
143 header.fragment_offset = htons(IP_DONT_FRAGMENT);
144 header.time_to_live = IP_DEFAULT_TIME_TO_LIVE;
145 header.protocol = protocol;
146 header.checksum = 0;
147 header.source = htonl(fEthernet->IPAddress());
148 header.destination = htonl(destination);
151 header.checksum = htons(_Checksum(header));
201 IPService::_Checksum(const ip_header &header)
203 ChainBuffer buffer((void*)&header, header.header_length * 4);