Lines Matching full:ip
35 * Implemented IP/TCP/UDP checksum task offloading
1077 /* IP checksum error flag */ in rtl8139_do_receive()
1926 /* IP checksum offload flag */ in rtl8139_cplus_transmit_one()
2072 /* Large enough for Ethernet and IP headers? */ in rtl8139_cplus_transmit_one()
2077 /* ip packet header */ in rtl8139_cplus_transmit_one()
2078 struct ip_header *ip = NULL; in rtl8139_cplus_transmit_one() local
2092 DPRINTF("+++ C+ mode has IP packet\n"); in rtl8139_cplus_transmit_one()
2102 ip = (struct ip_header*)eth_payload_data; in rtl8139_cplus_transmit_one()
2104 if (IP_HEADER_VERSION(ip) != IP_HEADER_VERSION_4) { in rtl8139_cplus_transmit_one()
2105 DPRINTF("+++ C+ mode packet has bad IP version %d " in rtl8139_cplus_transmit_one()
2106 "expected %d\n", IP_HEADER_VERSION(ip), in rtl8139_cplus_transmit_one()
2111 hlen = IP_HDR_GET_LEN(ip); in rtl8139_cplus_transmit_one()
2116 ip_protocol = ip->ip_p; in rtl8139_cplus_transmit_one()
2118 ip_data_len = be16_to_cpu(ip->ip_len); in rtl8139_cplus_transmit_one()
2126 DPRINTF("+++ C+ mode need IP checksum\n"); in rtl8139_cplus_transmit_one()
2128 ip->ip_sum = 0; in rtl8139_cplus_transmit_one()
2129 ip->ip_sum = ip_checksum(ip, hlen); in rtl8139_cplus_transmit_one()
2130 DPRINTF("+++ C+ mode IP header len=%d checksum=%04x\n", in rtl8139_cplus_transmit_one()
2131 hlen, ip->ip_sum); in rtl8139_cplus_transmit_one()
2147 DPRINTF("+++ C+ mode offloaded task TSO IP data %d " in rtl8139_cplus_transmit_one()
2153 /* maximum IP header length is 60 bytes */ in rtl8139_cplus_transmit_one()
2156 /* save IP header template; data area is used in tcp checksum calculation */ in rtl8139_cplus_transmit_one()
2175 DPRINTF("+++ C+ mode TSO IP data len %d TCP hlen %d TCP " in rtl8139_cplus_transmit_one()
2178 /* note the cycle below overwrites IP header data, in rtl8139_cplus_transmit_one()
2198 /* copy IP source and destination fields */ in rtl8139_cplus_transmit_one()
2230 /* restore IP header */ in rtl8139_cplus_transmit_one()
2233 /* set IP data length and recalculate IP checksum */ in rtl8139_cplus_transmit_one()
2234 ip->ip_len = cpu_to_be16(hlen + tcp_hlen + chunk_size); in rtl8139_cplus_transmit_one()
2236 /* increment IP id for subsequent frames */ in rtl8139_cplus_transmit_one()
2237 … ip->ip_id = cpu_to_be16(tcp_send_offset/large_send_mss + be16_to_cpu(ip->ip_id)); in rtl8139_cplus_transmit_one()
2239 ip->ip_sum = 0; in rtl8139_cplus_transmit_one()
2240 ip->ip_sum = ip_checksum(eth_payload_data, hlen); in rtl8139_cplus_transmit_one()
2241 DPRINTF("+++ C+ mode TSO IP header len=%d " in rtl8139_cplus_transmit_one()
2242 "checksum=%04x\n", hlen, ip->ip_sum); in rtl8139_cplus_transmit_one()
2262 /* maximum IP header length is 60 bytes */ in rtl8139_cplus_transmit_one()
2270 /* copy IP source and destination fields */ in rtl8139_cplus_transmit_one()
2314 /* restore IP header */ in rtl8139_cplus_transmit_one()