/kernel/linux/linux-5.10/net/ipv4/ |
H A D | tcp_offload.c | 65 struct sk_buff *gso_skb = skb; in tcp_gso_segment() local 93 copy_destructor = gso_skb->destructor == tcp_wfree; in tcp_gso_segment() 94 ooo_okay = gso_skb->ooo_okay; in tcp_gso_segment() 118 if (unlikely(skb_shinfo(gso_skb)->tx_flags & SKBTX_SW_TSTAMP)) in tcp_gso_segment() 119 tcp_gso_tstamp(segs, skb_shinfo(gso_skb)->tskey, seq, mss); in tcp_gso_segment() 135 skb->destructor = gso_skb->destructor; in tcp_gso_segment() 136 skb->sk = gso_skb->sk; in tcp_gso_segment() 148 * is freed at TX completion, and not right now when gso_skb in tcp_gso_segment() 154 swap(gso_skb->sk, skb->sk); in tcp_gso_segment() 155 swap(gso_skb in tcp_gso_segment() [all...] |
H A D | udp_offload.c | 260 struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb, in __udp_gso_segment() argument 263 struct sock *sk = gso_skb->sk; in __udp_gso_segment() 272 if (skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST) in __udp_gso_segment() 273 return __udp_gso_segment_list(gso_skb, features, is_ipv6); in __udp_gso_segment() 275 mss = skb_shinfo(gso_skb)->gso_size; in __udp_gso_segment() 276 if (gso_skb->len <= sizeof(*uh) + mss) in __udp_gso_segment() 279 skb_pull(gso_skb, sizeof(*uh)); in __udp_gso_segment() 282 copy_dtor = gso_skb->destructor == sock_wfree; in __udp_gso_segment() 284 gso_skb->destructor = NULL; in __udp_gso_segment() 286 segs = skb_segment(gso_skb, feature in __udp_gso_segment() [all...] |
/kernel/linux/linux-6.6/net/ipv4/ |
H A D | udp_offload.c | 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 (skb_gso_ok(gso_skb, features | NETIF_F_GSO_ROBUST)) { in __udp_gso_segment() 283 skb_shinfo(gso_skb)->gso_segs = DIV_ROUND_UP(gso_skb->len - sizeof(*uh), in __udp_gso_segment() 288 if (skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST) in __udp_gso_segment() 289 return __udp_gso_segment_list(gso_skb, features, is_ipv6); in __udp_gso_segment() 291 skb_pull(gso_skb, sizeo in __udp_gso_segment() [all...] |
H A D | tcp_offload.c | 66 struct sk_buff *gso_skb = skb; in tcp_gso_segment() local 95 copy_destructor = gso_skb->destructor == tcp_wfree; in tcp_gso_segment() 96 ooo_okay = gso_skb->ooo_okay; in tcp_gso_segment() 120 if (unlikely(skb_shinfo(gso_skb)->tx_flags & SKBTX_SW_TSTAMP)) in tcp_gso_segment() 121 tcp_gso_tstamp(segs, skb_shinfo(gso_skb)->tskey, seq, mss); in tcp_gso_segment() 136 skb->destructor = gso_skb->destructor; in tcp_gso_segment() 137 skb->sk = gso_skb->sk; in tcp_gso_segment() 149 * is freed at TX completion, and not right now when gso_skb in tcp_gso_segment() 155 swap(gso_skb->sk, skb->sk); in tcp_gso_segment() 156 swap(gso_skb in tcp_gso_segment() [all...] |
/kernel/linux/linux-5.10/net/sched/ |
H A D | sch_generic.c | 152 __skb_queue_tail(&q->gso_skb, skb); in dev_requeue_skb() 220 * A requeued skb (via q->gso_skb) can also be a SKB list. 229 if (unlikely(!skb_queue_empty(&q->gso_skb))) { in dequeue_skb() 237 skb = skb_peek(&q->gso_skb); in dequeue_skb() 239 /* skb may be null if another cpu pulls gso_skb off in between in dequeue_skb() 248 /* skb in gso_skb were already validated */ in dequeue_skb() 255 skb = __skb_dequeue(&q->gso_skb); in dequeue_skb() 583 .gso_skb = { 584 .next = (struct sk_buff *)&noop_qdisc.gso_skb, 585 .prev = (struct sk_buff *)&noop_qdisc.gso_skb, [all...] |
/kernel/linux/linux-6.6/net/sched/ |
H A D | sch_generic.c | 154 __skb_queue_tail(&q->gso_skb, skb); in dev_requeue_skb() 226 * A requeued skb (via q->gso_skb) can also be a SKB list. 235 if (unlikely(!skb_queue_empty(&q->gso_skb))) { in dequeue_skb() 243 skb = skb_peek(&q->gso_skb); in dequeue_skb() 245 /* skb may be null if another cpu pulls gso_skb off in between in dequeue_skb() 254 /* skb in gso_skb were already validated */ in dequeue_skb() 261 skb = __skb_dequeue(&q->gso_skb); in dequeue_skb() 662 .gso_skb = { 663 .next = (struct sk_buff *)&noop_qdisc.gso_skb, 664 .prev = (struct sk_buff *)&noop_qdisc.gso_skb, [all...] |
/kernel/linux/linux-5.10/include/net/ |
H A D | sch_generic.h | 101 struct sk_buff_head gso_skb ____cacheline_aligned_in_smp; 1098 struct sk_buff *skb = skb_peek(&sch->gso_skb); in qdisc_peek_dequeued() 1100 /* we can reuse ->gso_skb because peek isn't called for root qdiscs */ in qdisc_peek_dequeued() 1105 __skb_queue_head(&sch->gso_skb, skb); in qdisc_peek_dequeued() 1144 struct sk_buff *skb = skb_peek(&sch->gso_skb); in qdisc_dequeue_peeked() 1147 skb = __skb_dequeue(&sch->gso_skb); in qdisc_dequeue_peeked()
|
H A D | udp.h | 181 struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
|
/kernel/linux/linux-6.6/include/net/ |
H A D | sch_generic.h | 115 struct sk_buff_head gso_skb ____cacheline_aligned_in_smp; 1090 struct sk_buff *skb = skb_peek(&sch->gso_skb); in qdisc_peek_dequeued() 1092 /* we can reuse ->gso_skb because peek isn't called for root qdiscs */ in qdisc_peek_dequeued() 1097 __skb_queue_head(&sch->gso_skb, skb); in qdisc_peek_dequeued() 1136 struct sk_buff *skb = skb_peek(&sch->gso_skb); in qdisc_dequeue_peeked() 1139 skb = __skb_dequeue(&sch->gso_skb); in qdisc_dequeue_peeked()
|
H A D | udp.h | 175 struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
|
/kernel/linux/linux-5.10/net/netfilter/ |
H A D | nfnetlink_queue.c | 755 struct sk_buff *gso_skb = entry->skb; in __nfqnl_enqueue_packet_gso() local 759 entry->skb = gso_skb; in __nfqnl_enqueue_packet_gso()
|
/kernel/linux/linux-6.6/net/netfilter/ |
H A D | nfnetlink_queue.c | 783 struct sk_buff *gso_skb = entry->skb; in __nfqnl_enqueue_packet_gso() local 787 entry->skb = gso_skb; in __nfqnl_enqueue_packet_gso()
|
/kernel/linux/linux-5.10/drivers/net/usb/ |
H A D | lan78xx.c | 3240 goto gso_skb; in lan78xx_tx_bh() 3267 gso_skb: in lan78xx_tx_bh()
|