Lines Matching full:ip
2 * IP checksumming functions.
63 struct ip_header *ip; in net_checksum_calculate() local
99 /* Now check we have an IP header (with an optional VLAN header) */ in net_checksum_calculate()
104 ip = (struct ip_header *)((uint8_t *)data + mac_hdr_len); in net_checksum_calculate()
106 if (IP_HEADER_VERSION(ip) != IP_HEADER_VERSION_4) { in net_checksum_calculate()
110 /* Calculate IP checksum */ in net_checksum_calculate()
112 stw_he_p(&ip->ip_sum, 0); in net_checksum_calculate()
113 csum = net_raw_checksum((uint8_t *)ip, IP_HDR_GET_LEN(ip)); in net_checksum_calculate()
114 stw_be_p(&ip->ip_sum, csum); in net_checksum_calculate()
117 if (IP4_IS_FRAGMENT(ip)) { in net_checksum_calculate()
118 return; /* a fragmented IP packet */ in net_checksum_calculate()
121 ip_len = lduw_be_p(&ip->ip_len); in net_checksum_calculate()
123 /* Last, check that we have enough data for the all IP frame */ in net_checksum_calculate()
128 ip_len -= IP_HDR_GET_LEN(ip); in net_checksum_calculate()
130 switch (ip->ip_p) { in net_checksum_calculate()
137 tcp_header *tcp = (tcp_header *)(ip + 1); in net_checksum_calculate()
146 csum = net_checksum_tcpudp(ip_len, ip->ip_p, in net_checksum_calculate()
147 (uint8_t *)&ip->ip_src, in net_checksum_calculate()
161 udp_header *udp = (udp_header *)(ip + 1); in net_checksum_calculate()
170 csum = net_checksum_tcpudp(ip_len, ip->ip_p, in net_checksum_calculate()
171 (uint8_t *)&ip->ip_src, in net_checksum_calculate()