Lines Matching refs:seg
192 static void __udpv4_gso_segment_csum(struct sk_buff *seg,
202 uh = udp_hdr(seg);
203 iph = ip_hdr(seg);
206 inet_proto_csum_replace4(&uh->check, seg, *oldip, *newip,
208 inet_proto_csum_replace2(&uh->check, seg, *oldport, *newport,
221 struct sk_buff *seg;
225 seg = segs;
226 uh = udp_hdr(seg);
227 iph = ip_hdr(seg);
229 if ((udp_hdr(seg)->dest == udp_hdr(seg->next)->dest) &&
230 (udp_hdr(seg)->source == udp_hdr(seg->next)->source) &&
231 (ip_hdr(seg)->daddr == ip_hdr(seg->next)->daddr) &&
232 (ip_hdr(seg)->saddr == ip_hdr(seg->next)->saddr))
235 while ((seg = seg->next)) {
236 uh2 = udp_hdr(seg);
237 iph2 = ip_hdr(seg);
239 __udpv4_gso_segment_csum(seg,
242 __udpv4_gso_segment_csum(seg,
270 struct sk_buff *segs, *seg;
312 seg = segs;
313 uh = udp_hdr(seg);
316 skb_shinfo(seg)->tskey = skb_shinfo(gso_skb)->tskey;
317 skb_shinfo(seg)->tx_flags |=
326 seg->destructor = sock_wfree;
327 seg->sk = sk;
328 sum_truesize += seg->truesize;
331 if (!seg->next)
337 if (seg->ip_summed == CHECKSUM_PARTIAL)
338 gso_reset_checksum(seg, ~check);
340 uh->check = gso_make_checksum(seg, ~check) ? :
343 seg = seg->next;
344 uh = udp_hdr(seg);
348 newlen = htons(skb_tail_pointer(seg) - skb_transport_header(seg) +
349 seg->data_len);
355 if (seg->ip_summed == CHECKSUM_PARTIAL)
356 gso_reset_checksum(seg, ~check);
358 uh->check = gso_make_checksum(seg, ~check) ? : CSUM_MANGLED_0;