Lines Matching refs:gso_skb

265 struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,  in __udp_gso_segment()  argument
268 struct sock *sk = gso_skb->sk; in __udp_gso_segment()
277 mss = skb_shinfo(gso_skb)->gso_size; in __udp_gso_segment()
278 if (gso_skb->len <= sizeof(*uh) + mss) in __udp_gso_segment()
281 if (unlikely(skb_checksum_start(gso_skb) != in __udp_gso_segment()
282 skb_transport_header(gso_skb) && in __udp_gso_segment()
283 !(skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST))) in __udp_gso_segment()
289 if (gso_skb->ip_summed != CHECKSUM_PARTIAL) in __udp_gso_segment()
292 if (skb_gso_ok(gso_skb, features | NETIF_F_GSO_ROBUST)) { in __udp_gso_segment()
294 skb_shinfo(gso_skb)->gso_segs = DIV_ROUND_UP(gso_skb->len - sizeof(*uh), in __udp_gso_segment()
299 if (skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST) { in __udp_gso_segment()
301 if (skb_pagelen(gso_skb) - sizeof(*uh) == skb_shinfo(gso_skb)->gso_size) in __udp_gso_segment()
302 return __udp_gso_segment_list(gso_skb, features, is_ipv6); in __udp_gso_segment()
305 gso_skb->csum_start = skb_transport_header(gso_skb) - gso_skb->head; in __udp_gso_segment()
306 gso_skb->csum_offset = offsetof(struct udphdr, check); in __udp_gso_segment()
307 gso_skb->ip_summed = CHECKSUM_PARTIAL; in __udp_gso_segment()
309 uh = udp_hdr(gso_skb); in __udp_gso_segment()
311 uh->check = ~udp_v6_check(gso_skb->len, in __udp_gso_segment()
312 &ipv6_hdr(gso_skb)->saddr, in __udp_gso_segment()
313 &ipv6_hdr(gso_skb)->daddr, 0); in __udp_gso_segment()
315 uh->check = ~udp_v4_check(gso_skb->len, in __udp_gso_segment()
316 ip_hdr(gso_skb)->saddr, in __udp_gso_segment()
317 ip_hdr(gso_skb)->daddr, 0); in __udp_gso_segment()
320 skb_pull(gso_skb, sizeof(*uh)); in __udp_gso_segment()
323 copy_dtor = gso_skb->destructor == sock_wfree; in __udp_gso_segment()
325 gso_skb->destructor = NULL; in __udp_gso_segment()
326 gso_skb->sk = NULL; in __udp_gso_segment()
329 segs = skb_segment(gso_skb, features); in __udp_gso_segment()
332 gso_skb->destructor = sock_wfree; in __udp_gso_segment()
333 gso_skb->sk = sk; in __udp_gso_segment()
349 skb_shinfo(seg)->tskey = skb_shinfo(gso_skb)->tskey; in __udp_gso_segment()
351 (skb_shinfo(gso_skb)->tx_flags & SKBTX_ANY_TSTAMP); in __udp_gso_segment()
398 if (gso_skb->ip_summed == CHECKSUM_NONE) in __udp_gso_segment()
399 gso_skb->ip_summed = CHECKSUM_UNNECESSARY; in __udp_gso_segment()
403 int delta = sum_truesize - gso_skb->truesize; in __udp_gso_segment()