Lines Matching refs:seg
187 static void __udpv4_gso_segment_csum(struct sk_buff *seg,
197 uh = udp_hdr(seg);
198 iph = ip_hdr(seg);
201 inet_proto_csum_replace4(&uh->check, seg, *oldip, *newip,
203 inet_proto_csum_replace2(&uh->check, seg, *oldport, *newport,
216 struct sk_buff *seg;
220 seg = segs;
221 uh = udp_hdr(seg);
222 iph = ip_hdr(seg);
224 if ((udp_hdr(seg)->dest == udp_hdr(seg->next)->dest) &&
225 (udp_hdr(seg)->source == udp_hdr(seg->next)->source) &&
226 (ip_hdr(seg)->daddr == ip_hdr(seg->next)->daddr) &&
227 (ip_hdr(seg)->saddr == ip_hdr(seg->next)->saddr))
230 while ((seg = seg->next)) {
231 uh2 = udp_hdr(seg);
232 iph2 = ip_hdr(seg);
234 __udpv4_gso_segment_csum(seg,
237 __udpv4_gso_segment_csum(seg,
265 struct sk_buff *segs, *seg;
300 seg = segs;
301 uh = udp_hdr(seg);
304 skb_shinfo(seg)->tskey = skb_shinfo(gso_skb)->tskey;
305 skb_shinfo(seg)->tx_flags |=
314 seg->destructor = sock_wfree;
315 seg->sk = sk;
316 sum_truesize += seg->truesize;
319 if (!seg->next)
325 if (seg->ip_summed == CHECKSUM_PARTIAL)
326 gso_reset_checksum(seg, ~check);
328 uh->check = gso_make_checksum(seg, ~check) ? :
331 seg = seg->next;
332 uh = udp_hdr(seg);
336 newlen = htons(skb_tail_pointer(seg) - skb_transport_header(seg) +
337 seg->data_len);
343 if (seg->ip_summed == CHECKSUM_PARTIAL)
344 gso_reset_checksum(seg, ~check);
346 uh->check = gso_make_checksum(seg, ~check) ? : CSUM_MANGLED_0;