Lines Matching refs:iph
39 #define IP_HDR_LEN(iph) (iph->ihl << 2) argument
40 #define TCP_PAYLOAD_LENGTH(iph, tcph) \ argument
41 (ntohs(iph->tot_len) - IP_HDR_LEN(iph) - TCP_HDR_LEN(tcph))
55 static int lro_tcp_ip_check(const struct iphdr *iph, const struct tcphdr *tcph, in lro_tcp_ip_check() argument
59 if (ntohs(iph->tot_len) != len) in lro_tcp_ip_check()
62 if (TCP_PAYLOAD_LENGTH(iph, tcph) == 0) in lro_tcp_ip_check()
65 if (iph->ihl != IPH_LEN_WO_OPTIONS) in lro_tcp_ip_check()
72 if (INET_ECN_is_ce(ipv4_get_dsfield(iph))) in lro_tcp_ip_check()
105 struct iphdr *iph = lro_desc->iph; in lro_update_tcp_ip_header() local
118 csum_replace2(&iph->check, iph->tot_len, htons(lro_desc->ip_tot_len)); in lro_update_tcp_ip_header()
119 iph->tot_len = htons(lro_desc->ip_tot_len); in lro_update_tcp_ip_header()
124 tcph->check = csum_tcpudp_magic(iph->saddr, iph->daddr, in lro_update_tcp_ip_header()
126 IP_HDR_LEN(iph), IPPROTO_TCP, in lro_update_tcp_ip_header()
130 static __wsum lro_tcp_data_csum(struct iphdr *iph, struct tcphdr *tcph, int len) in lro_tcp_data_csum() argument
139 tcp_ps_hdr_csum = csum_tcpudp_nofold(iph->saddr, iph->daddr, in lro_tcp_data_csum()
148 struct iphdr *iph, struct tcphdr *tcph) in lro_init_desc() argument
152 u32 tcp_data_len = TCP_PAYLOAD_LENGTH(iph, tcph); in lro_init_desc()
157 lro_desc->iph = iph; in lro_init_desc()
164 lro_desc->ip_tot_len = ntohs(iph->tot_len); in lro_init_desc()
176 lro_desc->data_csum = lro_tcp_data_csum(iph, tcph, in lro_init_desc()
185 static void lro_add_common(struct net_lro_desc *lro_desc, struct iphdr *iph, in lro_add_common() argument
204 lro_tcp_data_csum(iph, tcph, in lro_add_common()
215 struct iphdr *iph, struct tcphdr *tcph) in lro_add_packet() argument
218 int tcp_data_len = TCP_PAYLOAD_LENGTH(iph, tcph); in lro_add_packet()
220 lro_add_common(lro_desc, iph, tcph, tcp_data_len); in lro_add_packet()
235 struct iphdr *iph, in lro_check_tcp_conn() argument
238 if ((lro_desc->iph->saddr != iph->saddr) || in lro_check_tcp_conn()
239 (lro_desc->iph->daddr != iph->daddr) || in lro_check_tcp_conn()
248 struct iphdr *iph, in lro_get_desc() argument
259 if (!lro_check_tcp_conn(tmp, iph, tcph)) { in lro_get_desc()
298 struct iphdr *iph; in __lro_proc_skb() local
304 lro_mgr->get_skb_header(skb, (void *)&iph, (void *)&tcph, in __lro_proc_skb()
311 lro_desc = lro_get_desc(lro_mgr, lro_mgr->lro_arr, iph, tcph); in __lro_proc_skb()
320 if (lro_tcp_ip_check(iph, tcph, skb->len - vlan_hdr_len, NULL)) in __lro_proc_skb()
324 lro_init_desc(lro_desc, skb, iph, tcph); in __lro_proc_skb()
332 if (lro_tcp_ip_check(iph, tcph, skb->len, lro_desc)) in __lro_proc_skb()
335 lro_add_packet(lro_desc, skb, iph, tcph); in __lro_proc_skb()